PDA

View Full Version : نمایش ناقص رکوردها در DataGrid



mehdi58
جمعه 12 اسفند 1384, 16:12 عصر
سلام
یه اتفاق عجیب برام اتفاق افتاده که احتیاج به کمک فوری دارم!!!!
من یه Table دارم( در SQL ) که فقط یه Field داره با عنوان name و از نوع Nvarchar هست.
فرض می کنیم که دو تا رکورد به نامهای علی و رضا وجود داره.
حالا به زیر برنامه ها توجه کنین:

زیر برنامه شماره 1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strCon As New SqlConnection("Integrated Security=SSPI;Initial Catalog=IIFsystem")
strCon.Open()
Dim cmd As New SqlCommand("select name from table1", strCon)
Dim dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Response.Write(dr.GetString(0))
End While
dr.Close()
strCon.Close()
End Sub
خروجی:
علی
رضا

همچنین اگه از Label1.Text += dr.GetString(0) + "<br>" هم استفاده کنیم اونوقت خروجی مثل بالایی میشه.

زیر برنامه شماره 2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strCon As New SqlConnection("Integrated Security=SSPI;Initial Catalog=IIFsystem")
strCon.Open()
Dim cmd As New SqlCommand("select name from table1", strCon)
Dim dr As SqlDataReader = cmd.ExecuteReader()
dr.Read()
DataGrid1.DataSource = dr
DataGrid1.DataBind()
dr.Close()
strCon.Close()
End Sub
خروجی :
رضا
زیر برنامه شماره 2 فقط یه رکورد رو نشون میده یعنی به عبارتی اگه از زیر برنامه 2 استفاده کنم همیشه یه رکورد کمتر از تعداد رکوردهای موجود رو به من نشون میده!!!
البته یه نکته جالب دیگه اینکه من از روش Stored procedure ای هم استفاده کردم و اون داخل Query analyzer درست کار میکنه اما توی فرمهای ASP.NET باز هم یه رکورد کمتر نشون میده.

حالا به نظر شما من باید چیکار کنم که زیر برنامه شماره 2 من درست کار کنه؟؟؟
خیلی زیاد نوشتم ...ببخشین

Behrouz_Rad
جمعه 12 اسفند 1384, 17:26 عصر
اگه از زیر برنامه 2 استفاده کنم همیشه یه رکورد کمتر از تعداد رکوردهای موجود رو به من نشون میده!!!

دوست خوبم!
باید هم نشون بده!
نیازی به فراخوانی متد Read شی DataReader نداری!
با هر بار فراخوانی این متد، اشاره گر رکورد، به رکورد بعدی اشاره می کنه؛ به همین خاطر، با فراخوانی متد Read، اشاره گر رکورد به رکورد دوم اشاره خواهد کرد و رکورد دوم به بعد در DataGrid نمایش داده خواهند شد.

موفق باشید.

mehdi58
جمعه 12 اسفند 1384, 19:47 عصر
بهروز جان دمت گرم!!!!