ورود

View Full Version : علت خطای زیر چیست ؟



نسرین2000
دوشنبه 11 فروردین 1393, 09:44 صبح
سلام
قطعه کد زیر رو برای بدست آوردن اختلاف دو تاریخ نوشتم ولی زمانی که فرم لود می شود ارور زیر را می دهد ؟
Invalid attempt to read when no data is present
Private Sub txtdate_kh_TextChanged(sender As Object, e As EventArgs) Handles txtdate_kh.TextChanged
Dim objcommand As New SqlCommand
objcommand.Connection = objconnection
objcommand.CommandText = " select date_vorood1 from suite where guest_id=@guest_id"
objcommand.Parameters.AddWithValue("@guest_id", txtguest_id.Text)
Dim sreader As SqlDataReader
objconnection.Open()
sreader = objcommand.ExecuteReader()
Dim a As Date
Dim i As Integer
a = System.DateTime.Today
i = DateDiff("n", a, CDate(sreader.Item("date_vorood1")))
txtmodat_eghamat.Text = i
objconnection.Close()
End Sub

Mani_rf
دوشنبه 11 فروردین 1393, 09:59 صبح
سلام.
این سوال امتحان بود!

نحوه استفاده از DataReader درست نیست. شما با DataReader داری یک لیست میخونی که هنوز هم لود نکردی و داری از اون به عنوان یک مقدار استفاده می کنی.
اول مقدار مشخص رو بخون و بعد به تابع بفرست

نسرین2000
دوشنبه 11 فروردین 1393, 10:37 صبح
میشه بیشتر توضیح بدید متوجه نشدم من اول با دستور select اون data رو انتخاب کردم و با datareader اون رو خوندم .

Mani_rf
دوشنبه 11 فروردین 1393, 14:52 عصر
نحوه به کارگیری DataReader در کدی که نوشتی صحیح نیست. درباره نحوه عملکرد DataReader مطالعه کن؛
و یا این که به جای اون از DataAdapter استفاده کن که کاربری راحت تری داره.

نسرین2000
شنبه 16 فروردین 1393, 08:38 صبح
مرسی از راهنماییتون
مشکل اینجا بود که خط زیر رو ننوشته بودم :
sresder.read
یعنی در واقع sreader رو لود نکرده بودم.