PDA

View Full Version : bind کردن گرید در زمان اجرا



بمب منطقی
دوشنبه 01 خرداد 1391, 18:41 عصر
با سلام
داستان اینه که dbgrid ای دارم که به یه datasource وصله و datasource هم به یه adoquery وصله که دستور sql مربوط به adoquery در زمان اجرا تعیین میشه و ممکنه هر دیتایی رو از هر جدولی در بانک fetch کنه.
حالا موضوع اینه که adoquery به خوبی عمل میکنه و اطلاعات رو fetch میکنه ولی dbgrid اطلاعات رو نشون نمیده و در حقیقت refresh نمیشه.اینم کدی که استفاده کردم(خیلی سادست!!)
sconnections.ADOQuery1.Active:=False;
sconnections.ADOQuery1.SQL.Clear;
sconnections.ADOQuery1.SQL.Add('select * from customers');
sconnections.ADOQuery1.Open;
sconnections.ADOQuery1.Active:=True;

اونم بعد کد بالا کد زیر رو نوشتم شاید درست شه و لی بازم نشد:
dbgrid1.refresh
dbgrid1 رو به datasource ای که به adoquery بالا وصله قبلا وصل کردم

ممنون میشم راهنماییم کنید

سعید صابری
دوشنبه 01 خرداد 1391, 18:53 عصر
sconnections.ADOQuery1.Active:=True; این خط دیگه اضافیه

شما ADOQuery1 را close وopen کنید به جای
dbgrid1.refresh

بمب منطقی
سه شنبه 02 خرداد 1391, 08:41 صبح
به این شکل دیگه:
sconnections.ADOQuery1.Active:=False;
sconnections.ADOQuery1.SQL.Clear;
sconnections.ADOQuery1.SQL.Add('select * from customers');
sconnections.ADOQuery1.Close;
sconnections.ADOQuery1.Open;
باز هم grid ام خالی نشون میده.و موضوع اینه که مقادیر query رو بعد از اجرای اون،وقتی توی textbox نشون میدم نشون میده یعنی کوری به درستی اجرا میشه.ولی تو گرید نشون نمیده!

بمب منطقی
سه شنبه 02 خرداد 1391, 09:04 صبح
من با گرید devexpress کار میکردم و متوجه شدم با این گرید مشکل دارم ولی با dbgrid خود دلفی مشکلی ندارم و با اضافه کردن دستور زیر به کد بالا مشکلم حل شد:
DBGrid1.DataSource:=sconnections.datasource1;
datasource1 به adoquery1 وصله.ولی خیلی مایل بودم با گرید devexpress اینکار رو کنم.چون گریدش واقعا معرکست.کسی نمیدونه باید چیکار کنم؟

fahimi
چهارشنبه 03 خرداد 1391, 17:55 عصر
bind کردن گرید یک اصطلاح در سی شارپ است
در ساده ترین حالت شما یک شی ADOQuery1 و DataSource1 را روی فرمتان قرار دهید
از devexperess گرید cxGrid1 در فرمتان قرار دهید
روی گرید cxGrid1 کلیک راست و گزینه link to DataSource1 را انتخاب کنید
به همین سادگی!