يك موضوع عجيب غريب!!!!!

mehdi58

Member
سلام
يه اتفاق عجيب برام اتفاق افتاده كه احتياج به كمك فوري دارم!!!!
من يه 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 من درست كار كنه؟؟؟
خيلي زياد نوشتم ...ببخشين
 

amir_m

Member
با سلام.
وقتي شما dr.read رو اجرا مي کنيد. در واقع کرسر شما به سطر بعد ميره يعني علي عملا حذف مي شه.
اگه کد dr.read رو حذف کنيد برنامه درست ميشه.

موفق باشيد.
 

جدیدترین ارسال ها

بالا