PDA

View Full Version : مبتدی: مشکل در چند بار جستجو



piter11
چهارشنبه 19 شهریور 1393, 15:52 عصر
من چند بار یک شمار رو اشتباه وارد میکنم بعد از 2 یا 3 سه بار

این پیغام برام میاد
There is already an open DataReader associated with this Command which must be closed first.

اینم کدمه ممنون میشم کمکم کنید
If con.State = ConnectionState.Closed Then
con.Open()
End If

cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "SELECT Name,family,id,tarikh,adres,inf FROM Tbvip WHERE(tell=@tell)"
cmd.Parameters.Add("@tell", SqlDbType.NVarChar, 50).Value = t1.Text




'con.Open()
If con.State = ConnectionState.Open Then
Dim sReader As SqlDataReader = cmd.ExecuteReader()

'sreader برای خواندن دیتا از اس کیو ال توسط دیتا ریدر می باشد

If sReader.Read() Then
'اینجا داده هایی مه توس Sreader خوندیم رو توی تکس باکس ها فراخوانی میکنیم
t2.Text = sReader.GetValue(0).ToString()
t3.Text = sReader.GetValue(1).ToString()
t4.Text = sReader.GetValue(2).ToString()
HM_FarsiCalendar4.Text = sReader.GetValue(3).ToString()
TextBox5.Text = sReader.GetValue(4).ToString()
t6.Text = sReader.GetValue(5).ToString()




con.Close()
Else : MessageBox.Show("پیدا نشد")
End If
End If



از این کد باز کانکشم ایراد میگیره
Dim sReader As SqlDataReader = cmd.ExecuteReader()

gilsoft
چهارشنبه 19 شهریور 1393, 16:49 عصر
من چند بار یک شمار رو اشتباه وارد میکنم بعد از 2 یا 3 سه بار

این پیغام برام میاد
There is already an open DataReader associated with this Command which must be closed first.

اینم کدمه ممنون میشم کمکم کنید
If con.State = ConnectionState.Closed Then
con.Open()
End If

cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "SELECT Name,family,id,tarikh,adres,inf FROM Tbvip WHERE(tell=@tell)"
cmd.Parameters.Add("@tell", SqlDbType.NVarChar, 50).Value = t1.Text




'con.Open()
If con.State = ConnectionState.Open Then
Dim sReader As SqlDataReader = cmd.ExecuteReader()

'sreader برای خواندن دیتا از اس کیو ال توسط دیتا ریدر می باشد

If sReader.Read() Then
'اینجا داده هایی مه توس Sreader خوندیم رو توی تکس باکس ها فراخوانی میکنیم
t2.Text = sReader.GetValue(0).ToString()
t3.Text = sReader.GetValue(1).ToString()
t4.Text = sReader.GetValue(2).ToString()
HM_FarsiCalendar4.Text = sReader.GetValue(3).ToString()
TextBox5.Text = sReader.GetValue(4).ToString()
t6.Text = sReader.GetValue(5).ToString()




con.Close()
Else : MessageBox.Show("پیدا نشد")
End If
End If



از این کد باز کانکشم ایراد میگیره
Dim sReader As SqlDataReader = cmd.ExecuteReader()

در سطر 28 از کد زیر استفاده کن :
sReader.Dispose()

موفق باشید .....