PDA

View Full Version : binad کردن Datatable فیلتر شده به Datagridview



azamkaboutari
پنج شنبه 12 مهر 1386, 11:15 صبح
با سلام به همه دوستان برنامه نویس
نحوه Bind کردن یک Datatable فیلتر شده به یک Datagridview ، چطوریه؟

من از روش زیر استفاده می کنم ولی فکر می کنم روش درستی نیست چون داخل Datagridview چیزی نمایش داده نمیشه :



Datagridview.datasource =Datatable.Select(expression, sortOrder)


در ضمن من Datapropertyname ستونهای Datagridview رو برابر نام ستونهای جدولی قرار دادم که داخل Datatable ریخته شده .

m_d6712
پنج شنبه 12 مهر 1386, 12:33 عصر
نمی تونی datatable را به datagrid بفرستی ولی میتونی datatable رو به dataview بفرستی و dataview رو به datagrid بفرستی.
این کد رو امتحان کن...


Dim datatable1 As New DataTable
datatable1.Columns.Add("Id", GetType(String))
datatable1.Columns.Add("name", GetType(String))
datatable1.Columns.Add("lname", GetType(String))
datatable1.Columns.Add("age", GetType(integer))
Dim dview AsNew DataView()
dview = New DataView(card)
DataGrid3.DataSource = dview
DataGrid3.DataBind()

azamkaboutari
پنج شنبه 12 مهر 1386, 20:03 عصر
من دارم از vs 2005 استفاده می کنم . می خوام محتویات یک Datatable فیلتر شده رو با Datagridview نشون بدم . بدون فیلتر اینکار انجام می شه فقط کافیه بنویسم :


datagridview.datasource=datatable

و datapropertyname ستونهای Datagridview رو برابر نام ستونهای جدولی که داخل Datatable لود شده قرار بدم اما بعد از فیلتر کردن Datatable نمی دونم چطور می تونم اون رو با Datagridview نمایش بدم ؟

m_d6712
پنج شنبه 12 مهر 1386, 20:22 عصر
باید امتحانش کنم.
نمی تونی فیلترینگ خودتو مستقیماً از database انجام بدی که این جور مشکلات رو نداشته باشی!؟

azamkaboutari
پنج شنبه 12 مهر 1386, 22:06 عصر
نه نمی تونم ، چون بعد از اینکه جدولم رو از database داخل datatable لود کردم یه ستون دیگه به Datatable ام ، Add کردم و حالا می خوام تو فیلترینگ ، روی این ستون اضافه شده (که تو Database وجود نداره ) شرط بذارم .

m_d6712
پنج شنبه 12 مهر 1386, 23:31 عصر
فکر کنم فهمیدم مشکلت چیه!!!!!!!!!!!
وقتی که یک ستون به datatable اضافه می کنی باید یک ستون هم به datagridview به همان نام اضافه کنی تا از نظر تعداد و نام با هم برابر باشند.
این کارو کرده بودی؟
احتمالاً مشکلت همینه. چون وقتی اطلاعات رو از database به datatable منتقل می کنی. تعداد و نام ستون های databaseو datatable و datagridview با هم برابر است ولی وقتی یک ستون بهش اضافه می کنی این برابری به هم میخوره. حال اگه یک ستون به datagridview هم اضافه کنی مشکلت حل می شه...
امیدوارم مشکلت حل بشه.

ghafoori
جمعه 13 مهر 1386, 11:18 صبح
دوست عزیز از همون دیتاویو یا bindingsource استفاده کن

نه نمی تونم ، چون بعد از اینکه جدولم رو از database داخل datatable لود کردم یه ستون دیگه به Datatable ام ، Add کردم و حالا می خوام تو فیلترینگ ، روی این ستون اضافه شده (که تو Database وجود نداره ) شرط بذارم .
در این حالت دیگر اهمیتی ندارد که ستون را شما اضافه کردید یا از بانک لود شده فقط کافی است خاصیت فیلتر دیتاویو یا bindingsource را مقدار بدید به این صورت

bindinssource1.filter="id="+id.tostring
حالا دیتاویو یا bindingsource را به دیتاگریدویو بایند کنید و هر ستونی را خواستید نمایش دهید یا ندهید تاثیری در فیلتر ندارد

azamkaboutari
جمعه 13 مهر 1386, 11:23 صبح
نه مشکل من این نیست !!!!!!!!!!!!!
به Datagridview هم با همون نام ستون اضافه کردم ، اما باز هم چیزی نمایش داده نمیشه .

بعد از اضافه کردن ستون به Datatable ، اگه فیلترش نکنم می تونم با Datagridview نمایشش بدم اما بعد از فیلتر کردن چیزی نمایش داده نمیشه :(
لطفا کمکم کنید .

azamkaboutari
جمعه 13 مهر 1386, 13:18 عصر
دوستان برنامه نویس لطفا کمکم کنید .

azamkaboutari
جمعه 13 مهر 1386, 22:18 عصر
چرا کسی به سؤال من جوابی نمیده ؟
یعنی سؤالم انقدر سخته ؟!!! یا شایدم خیلی پیش پا افتاده هست !!!!!!
پس اینجا به چه دردی می خوره ؟؟؟؟؟؟؟

پویا
شنبه 14 مهر 1386, 11:52 صبح
سلام

چرا عصبانی میشی؟
اینو امتحان کن


Dim dv As New DataView(DataTable)
dv.RowFilter = " ... "
DataGridView1.DataSource = dv

azamkaboutari
شنبه 14 مهر 1386, 22:39 عصر
دوست عزیز من از Datagridview استفاده می کنم نه Dataview !

می خوام یک Datatable رو بعد از اینکه با متد Select فیلتر کردم با Datagridview نمایش بدم . همین .

یعنی کسی تا حالا اینکار رو نکرده که منو راهنمایی کنه ؟

پویا
یک شنبه 15 مهر 1386, 13:20 عصر
خوب اینم همونه دیگه
شما اول جدول مورد نظرتو می ریزی تو یک ویو
بعد با همون شرطی که select گرفتی فیلتر میکنی
بعد میریزیش تو Datagridview

اگه نفهمیدی برنامه رو بذار اینجا