2017-03-20 1 views
0
CMD = New SqlCommand("Select * From Jenis where KodeJenis='" & CBjenis.Text & "'", CONN) 

RD = CMD.ExecuteReader() 
CONN.Open() 
RD.Read() 

If RD.HasRows = True Then 
    TextBox2.Text = RD.Item(1) 
Else 
    MsgBox("Kode jenis ini tidak terdaftar") 
End If 

무슨 문제입니까?이 명령과 관련된 열려있는 datareader가 이미 있습니다. 먼저 닫아야합니다. vb.net 2010

+0

데이터베이스에 대한 이전 연결을 닫으십시오. 전체 오류 로그와 클래스의 목적을 제공해주십시오. –

+0

첫 번째 : 리더를 호출하기 전에 연결을 시도하십시오. 두 번째 : 끝나면 리더를 닫습니다. if (연결 일 수도 있습니다). – muffi

답변

0

닫지 않은 연결을 피하려면 Using End Using 구문을 사용해보십시오.

Dim rd As SqlDataReader 
     Using CMD = New SqlCommand 
      CMD.CommandText = "Select * From Jenis where KodeJenis='" & CBjenis.Text & "'" 
      CMD.CommandType = CommandType.Text 
      CMD.Connection = CONN 
      CMD.Connection.Open() 
      rd = CMD.ExecuteReader 

      If rd.Read() Then 
       TextBox2.Text = rd.Item(1) 
      Else 
       MsgBox("Kode jenis ini tidak terdaftar") 
      End If 
     End Using 
    End Sub 
관련 문제