PDA

View Full Version : پیدا کردن position یک داده



Navid Asadi
جمعه 17 مهر 1388, 11:28 صبح
سلام دوستان
اگه من فیلد کلیدی یک داده رو داشته باشم و بخوام position اون رو بدست بیارم باید چیکار کنم؟
البته نمیخوام از حلقه های تکرار استفاده کنم؟

anooshiran
جمعه 17 مهر 1388, 12:11 عصر
سلام دوست عزیز

لطفا کمی بیشتر توضیح بده. متوجه منظورت نشدم

Navid Asadi
جمعه 17 مهر 1388, 14:50 عصر
سلام دوست عزیز
همیشه شما به من کمک کردید...
حالا من کامل به شما توضیح میدم:
فرض کنید کن یه جدول دارم که از فیلد کلیدی Id و چندین فیلد دیگه تشکیل شده...
خوب حالا اگه من ID یک رکورد رو داشته باشم چطوری میتونم Position اون رکورد رو پیدا کنم؟

به کد زیر دقت کنید این کد با حلقه For این کار رو انجام میده اما اگه تعداد داده ها خیلی زیاد باشه این کار به صرفه نیست (خیلی کند میشه):


Me.BindingContext(ds, "Datas").Position = 0

i = ID

For t = 0 To Me.BindingContext(ds, "Datas").Count - 1
P = Me.BindingContext(ds, "Datas").Position
i2 = ds.Tables("Datas").Rows(P).Item("ID")
If i2 = i Then
Exit For
Else
Me.BindingContext(ds, "Datas").Position += 1

Next
End If

Position=Me.BindingContext(ds, "Datas").Position

anooshiran
جمعه 17 مهر 1388, 21:36 عصر
سلام دوست عزیز

اصولا در نگرش جدید به database مکان یک رکورد دارای ارزشی نیست. بنابر روش مستقیمی برای یافتن مکان رکورد نیست یا بنده ندیده ام.

من نمی دانم row position را برای چه منظوری نیاز داری. اگر میخواهی با یافتن شماره رکورد بتوانی محتویات آن رکورد را بدست بیاوری نیازی به شماره رکورد نیست . با datarow می توانی یک select بنویسی و شرطت را برای یافتن آن رکورد عنوان کنی.

Navid Asadi
جمعه 17 مهر 1388, 21:43 عصر
من میخوام تا بعد از این که در فرم اصلی یک سطر از DataGraidview رو انتخاب کردم با زدن یک Button وارد یه فرم برای نمایش کامل تر داده هابشم...
خوب تا اینجاش رو میشه از ستون های دیتا گرید هم استفاده کرد اما من میخوام در اون فرم با کلید های بعدی و قبلی امکان پیمایش در جدول رو فراهم کنم...
اگه میشه یکمی در مورد Data rowمن رو راهنمایی کنید...

anooshiran
جمعه 17 مهر 1388, 21:57 عصر
سلام ذوست عزیز

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




Dim dt As New DataTable
dt.Columns.Add("COl1")
dt.Columns.Add("COl2")
dt.Columns.Add("COl3")
dt.Rows.Add(1, 10, "asdas")
dt.Rows.Add(2, 20, "wqweq")
dt.Rows.Add(3, 30, "ffghf")
dt.Rows.Add(4, 40, "nbbmb")
dt.Rows.Add(5, 50, "uouou")
Dim d_row() As DataRow
d_row = dt.Select("Col1=3")
If d_row.Length > 0 Then
MsgBox(d_row(0).Item("Col1") & " " & d_row(0).Item("Col2") & " " & d_row(0).Item("Col3"))
End If

nokhodsiah2001
شنبه 18 مهر 1388, 08:53 صبح
سلام دوستان
اگه من فیلد کلیدی یک داده رو داشته باشم و بخوام position اون رو بدست بیارم باید چیکار کنم؟
البته نمیخوام از حلقه های تکرار استفاده کنم؟


سلام اگر درست متوجه شده باشم منظور شما اینه که وقتی یک رکورد را انتخاب میکنید در برنامه بتونید به رکوردهایی که بعد از اون ثبت شدن (از نظر زمان ثبت) دسترسی پیدا کنید که این طبق فرمایش دوستمون نیاز به اینهمه جستجو نداره
میتونید کل جدول مورد نظر از پایگاه داده رو بیارید داخل یک datatable و طبق روشهی مختلف اون رو پیمایش کنید