PDA

View Full Version : تشخیص خالی بودن یا نبودن DataGrid



Morteza_s
دوشنبه 02 اردیبهشت 1387, 10:30 صبح
من برای جستجو در بانک از DataSet و BindingSource استفاده کردم
مثلآ:

Table1BindingSource.Filter="name = 'Ali' "
و نتیجه جستجو رو در یک DataGrid نمایش دادم

چطور تشخیص بدیم که جستجو نتیجه ایی نداشته و DataGrid خالیه؟
مثلآ تشخیص بدیم زمانی که DataGrid خالیه دکمه های ویرایش و حذف غیرفعال بشن

ممنون

eyes_shut_number1
دوشنبه 02 اردیبهشت 1387, 11:07 صبح
ds.tables(0).rows.count<0

rezaei manesh
دوشنبه 02 اردیبهشت 1387, 11:10 صبح
یا دیتا ویو خود دیتا ستت رو چک کن یا تعداد رکورد گرایدت رو
برای مثلا اگر شرط زیر درست بود رکورد داره


grid1.RowCount >0

reza6384
دوشنبه 02 اردیبهشت 1387, 13:02 عصر
ds.tables(0).rows.count<0


ببخشید، احتمالا اشتباه چاپی شده، DataGridView حتی اگر هم خالی باشه Rows.Count اش کوچکتز از صفر نمیشه :



OverloadsFunction IsEmpty(ByVal DG As DataGridView)
If DG.Rows.Count = 0 Then
ReturnTrue
Else
ReturnFalse
EndIf
EndFunction

eyes_shut_number1
دوشنبه 02 اردیبهشت 1387, 15:03 عصر
البته دوسته من
بنده منظورم dataset بود نه datagridview!

rezaei manesh
دوشنبه 02 اردیبهشت 1387, 15:09 عصر
البته دوسته من
بنده منظورم dataset بود نه datagridview!
دیتا ست هم کوچکتر از صفر نمی شه!

eyes_shut_number1
دوشنبه 02 اردیبهشت 1387, 19:32 عصر
ای خدا!!!!!!!!!
با با وقتی یه رکورد باشه میشه 0 پس وقتی که کوچکتر از 0 بدون رکورده!!!!!!!!!.
این برای اینه که اگه این شرط باشه دیتاست خالیههههههه

rezaei manesh
سه شنبه 03 اردیبهشت 1387, 08:02 صبح
سلام
عزیز هر جا کانت در هر کنترلی دیدی شک نکن که 0 مقدار خالی اونه و اگر بزرگتر از 0 باشه یعنی پر هست.

اما چون این نوع کنترل ها یک جورایی آرایه هستند و مقدار اندکس ارایه ها از 0 شروع می شه ما موقع برداشت رکورد باید اندکس صفر اونو بخونیم
یعنی اگه یک رکورد در یک دیتا تیبل وجود داشت کانت اون برابر یک خواهد بود و برای برداشت اون از اندکس 0 استفاده می کنم تا count -1
موفق باشید

eyes_shut_number1
سه شنبه 03 اردیبهشت 1387, 09:47 صبح
دقیقان همینه!
دوست من میدونم میدونید که مقدار دیفالت false در vb & vb.net -1 هست.
پس اگه کوچکتر از 0 رو تو شرط بگیریم false بودن رو چک کردیم

rezaei manesh
سه شنبه 03 اردیبهشت 1387, 09:55 صبح
ds.tables(0).rows.count<0


دوست من این شرط هیچ موقع true نمی شه چون مقدار دفالیت count برای صفر هست ببین خودت امتهان کن می فهمی
شما می گی اگه count=0 باشه یعنی ما یک رکورد دارم؟!!!!!!!!! اصلا و ابدا اینطور نیست و...

eyes_shut_number1
سه شنبه 03 اردیبهشت 1387, 10:33 صبح
if ds.tables(0).rows.count<0 then
msgbox("False")
else
Msgbox("true")
end if


این شرط وقتی رکوردی نیست درسته!
بهتره امتجان کنید

rezaei manesh
سه شنبه 03 اردیبهشت 1387, 11:32 صبح
آقا من دیگه در این مورد حرفی نمی زنم شاید هم من اشتباه کنم
اما من تا به حال count با مقدار کوچکتر از صفر ندیدم در هیچ کنترلی !
شاید مشکل از من باشه نمی دونم اما من نتونستم کانت منفی ببینم؟!
نتیجه کد شما در پست قبلی زمانی که رکوردی ندارد هم true هست