PDA

View Full Version : سوال: مشکل عجیب در datagridview!!!!



hessam2003
چهارشنبه 19 تیر 1392, 01:18 صبح
سلام.
من وقتی عمل درج را انجام میدم در دیتابیس درست ثبت میشه.
اما زمانی که در datagridview نمایش میدم از هر ثبت به تعداد 4 تا تکرار میکنه.
http://upload7.ir/images/46778240280614940171.jpg

http://upload7.ir/images/76525010650050384188.jpg

لطفا اگه کسی میدونه راهنمایی کنه.

amir200h
چهارشنبه 19 تیر 1392, 01:23 صبح
کوئریتو بزار

khokhan
چهارشنبه 19 تیر 1392, 01:24 صبح
سلام.
من وقتی عمل درج را انجام میدم در دیتابیس درست ثبت میشه.
اما زمانی که در datagridview نمایش میدم از هر ثبت به تعداد 4 تا تکرار میکنه.




لطفا اگه کسی میدونه راهنمایی کنه.

اگه اطلاعات رو از گرید در جدول وارد می کنین ایراد از حلقه for یا foreach بایستی باشه

بررسی کنین

amir200h
چهارشنبه 19 تیر 1392, 01:29 صبح
فکر نکنم khokhan جان. چون میگه تو دیتابیس درست ثبت میشه. ایراد از کوئری سلکتشه

hessam2003
چهارشنبه 19 تیر 1392, 01:55 صبح
عملیات درج در دو جدول زیر صورت میگیره.
http://upload7.ir/images/97919053569856076050.jpg

http://upload7.ir/images/96002893452177522475.jpg

amir200h
چهارشنبه 19 تیر 1392, 01:57 صبح
کوئری جست و جوتو بزار. عکس هم ننداز کدشو بزار

hessam2003
چهارشنبه 19 تیر 1392, 01:58 صبح
نه دوست عزیز از گرید اطلاعات را وارد نمیکنم و از حاقه ای هم استفاده نمیکنم.

hessam2003
چهارشنبه 19 تیر 1392, 02:01 صبح
این کوئری جستجو
ALTER procedure [dbo].[Academy_order_order_product_serach]
@Order_id nchar(10),
@Order_date nchar(10)
AS
if(@Order_id is not null) or (@Order_date is not null)
select * from Academy_order,Academy_order_products
where Academy_order.Order_id like @Order_id or Order_date like @Order_date
else
select * from Academy_order,Academy_order_products

amir200h
چهارشنبه 19 تیر 1392, 02:05 صبح
به این صورت بنویس ببین درست میشه یا نه؟
ALTER procedure [dbo].[Academy_order_order_product_serach]
@Order_id nchar(10),
@Order_date nchar(10)
AS
if(@Order_id is not null) or (@Order_date is not null)
select distinct * from Academy_order,Academy_order_products
where Academy_order.Order_id like @Order_id or Order_date like @Order_date
else
select distinct * from Academy_order,Academy_order_products

hessam2003
چهارشنبه 19 تیر 1392, 02:17 صبح
نه مجددا مثل عکسای پست 1 تکرار میکنه.
با کد شما 5بار تکرار شد در گرید.

hessam2003
چهارشنبه 19 تیر 1392, 02:21 صبح
الان به نظر شما کوئری جستجوم مشکل داره یا کوئری insert?
اگه دوتا کد insert را در یک کوئری بنویسم و اجرا کنم مشکل حل نمیشه؟

amir200h
چهارشنبه 19 تیر 1392, 02:23 صبح
مگه نمیگین که تو دیتابیس درسته؟ اگه درسته ایراد از کوئری سلکتتونه

hessam2003
چهارشنبه 19 تیر 1392, 02:29 صبح
چرا در دیتابیس درسته پست 1 عکس هست میتونید ببینید.
حتی با کد DISTINCT هم گرید بازم تکراری هارو نشون میده!!!!

amir200h
چهارشنبه 19 تیر 1392, 02:31 صبح
else به بعدو بردار با اون شرط if ببین کار میکنه؟

hessam2003
چهارشنبه 19 تیر 1392, 20:29 عصر
سلام.
بازم کار نمیکنه!!!

Sal_64
چهارشنبه 19 تیر 1392, 22:23 عصر
سلام
شما کوئری داخل sql اجرا کن ببین نتیجش درسته یا نه
اگر درست بود پس داخل برنامت چیزی داره تکرار میشه

sohil_ww
چهارشنبه 19 تیر 1392, 22:28 عصر
دیتاست پاک کن بعد اطلاعات بریز توش
dataset ds =new dataset();
ds.clear () or ds.clone();

hessam2003
پنج شنبه 20 تیر 1392, 01:03 صبح
سلام.
مشکل از این دستور است
select * from Academy_order,Academy_order_products
وقتی جدا مینویسم درست درون گرید نشون میده
select * from Academy_order
یا
select * from Academy_order_products
یکدوم از این دوتا.

hessam2003
پنج شنبه 20 تیر 1392, 01:05 صبح
این دستور را که نوشتم مشکل تکرار را حل کرده اما میاد ابتدا اطلاعات Academy_order_products را چاپی میکنه و بعد یک خط میاد پایین .Academy_order را چاپ میکنه
یعنی اطلاعات مربوط یک کد کاربری روبروی همدیگه قرار نمیگیرند در یک رکورد!!!!!
SELECT dbo.Academy_order_products.*, dbo.Academy_order.Order_srl,dbo.Academy_order.Orde r_date, dbo.Academy_order.Order_type, dbo.Academy_order.Order_total_money,
dbo.Academy_order.Order_credit, dbo.Academy_order.Order_debit
FROM dbo.Academy_order FULL OUTER JOIN
dbo.Academy_order_products ON dbo.Academy_order.Order_srl = dbo.Academy_order_products.Product_srl

hessam2003
پنج شنبه 20 تیر 1392, 01:10 صبح
به نظر شما اگه من بیام فیلدهای دو جدول را در یک جدول بذارم مشکل افزونگی و کاهش سرعت در گرید پیش نمیاد!!!
منظورم اینه که در یک جدول همشونو قرار بدم که دیگه واسه نمایششون نیاز به ادغام نداشته باشم.
select * from Academy_order,Academy_order_products
که چند بار تکرار بشوند.
لطفا راهنمایی کنید.

hessam2003
پنج شنبه 20 تیر 1392, 02:35 صبح
کسی نیست کمک کنه؟؟؟

npscash
جمعه 21 تیر 1392, 21:23 عصر
سلام دوست عزیز
مشکل شما 100 درصد به خاطر کوئری هست که برای خواندن اطلاعات استفاده می‌کنید. یکی از اصول نرمال سازی و مدل های رابطه‌ای نگهداری اطلاعات و در واقع موجودیت های مختلف در جداول مختلف است ولی نکته مهم نحوه ارتباط جداول با یکدیگر و کلیدهای تعریف شده برای آنهاست.
برای اینکه بهتر بتونم کمکتون کنم لطفاً اسکریپت این دو جدول را با داده قرار دهید تا کنترل کنم.

hessam2003
چهارشنبه 02 مرداد 1392, 01:57 صبح
سلام.
من اسکریپت و.... را گذاشتم کامل صفحه را ببینید قسمت بالاشو.

Mohammadm
چهارشنبه 02 مرداد 1392, 02:08 صبح
این کوئری جستجو
ALTER procedure [dbo].[Academy_order_order_product_serach]
@Order_id nchar(10),
@Order_date nchar(10)
AS
if(@Order_id is not null) or (@Order_date is not null)
select * from Academy_order,Academy_order_products
where Academy_order.Order_id like @Order_id or Order_date like @Order_date
else
select * from Academy_order,Academy_order_products
آیا بین دو جدول Academy_order,Academy_order_products ارتباطی از طریق کلید اصلی و خارجی وجود نداره؟
اگر ارتباطی هست از دستور join یا پیوند با شرط تساوی باید استفاده کنی
اگه هردو جدولو نشون میدادی به همراه دیاگرام خیلی بهتر بود

hessam2003
چهارشنبه 02 مرداد 1392, 02:32 صبح
سلام.
نه ارتباطی وجود نداره.
من هر joini که انجام میدم بازم تمام مقادیر در این فیلدهارو نشون نمیده.
inner join,across join, full outer join , خیلی روش های دیگه اما نشد که نشد!!!!

hojjatshariffam
چهارشنبه 02 مرداد 1392, 02:38 صبح
ببین جلوی اون کدتی که دیتا ستت رو میریزی تو دیتا گرید ویو ، یه برک پویت بزار ببین که چند بار برنامت اونجا رو اجرا می کنه
اگه جهار بار اجزا میش بدون که مشکل از اونجاست.
برای حل موقتی می تونی هر موقع اونو خالی کنی که فعلا حل بشه بعد بری ببینی چرا چهار بار اجرا میشه.
اگر نه که نظری ندارم
اون موقع باید کد پروژتو آپلود کنی

Mohammadm
چهارشنبه 02 مرداد 1392, 16:42 عصر
اگرسورس فرم و اسکریپت دیتابیستون رو برای دوستان قرار بدید مطمئن باشید مشکلتون حل میشه