2015-02-03 1 views
-1

일부 값을 테이블에 삽입하려고 시도했지만이 오류가 발생합니다.이 명령과 관련된 DataReader가 이미 열려 있습니다. 그것은 첫째 를 폐쇄해야 이것은 당신이 적어도 SQL 서버 2005에서 다음 연결 문자열에이 명령과 관련된 DataReader가 이미 열려 있습니다. 먼저 닫아야합니다

MultipleActiveResultSets=True 

를 추가 사용하는 경우

Public Function AddDB(ByVal codeP As String, ByVal exigence As String, ByVal nomE As String, ByVal Dt As String) 
    OpenCn() 
    Dim paramID As New SqlParameter("@id", SqlDbType.Int) 
    paramID.Value = 10 
    Dim paramText As New SqlParameter("@text", SqlDbType.VarChar, 50) 
    paramText.Value = "Ceci est un test" 
    Dim paramDate As New SqlParameter("@date", SqlDbType.DateTime) 
    paramDate.Value = DateTime.Now 
    Dim paramFloat As New SqlParameter("@float", SqlDbType.Float) 
    paramFloat.Value = 12.199999999999999 

    Dim Sql As String = String.Format("INSERT INTO DossierBleu(CodeP, Exigences, NomE, Date) VALUES (@codeP, @exigence, @nomE, @date)", 
     paramText.ParameterName, 
      paramText.ParameterName, 
      paramText.ParameterName, 
      paramText.ParameterName, 
      paramDate.ParameterName 
     ) 


    Dim Cmd = New SqlCommand(Sql.ToString(), Cn) 
    Cmd.Parameters.Add(New SqlParameter("@codeP", codeP)) 
    Cmd.Parameters.Add(New SqlParameter("@exigence", exigence)) 
    Cmd.Parameters.Add(New SqlParameter("@nomE", nomE)) 
    Cmd.Parameters.Add(New SqlParameter("@date", Dt)) 
    'Cmd.Parameters.Add(paramDate) 
    Return Cmd.ExecuteNonQuery() 
    CloseCn() 
End Function 

당신에게

+0

사용하는 문장을 보길 원할 것입니다 ... https://msdn.microsoft.com/en-us/library/htd05whh.aspx 이것은 여러분의 객체 (예 : 연결 , reader)는 예외가 발생하더라도 올바르게 닫힙니다. – RQDQ

답변

0

감사의 코드를입니다.

+0

귀하의 답변을 주셔서 감사합니다,하지만 난 biginner와 나는 어디에 연결 문자열을 찾을 수 있을지 모르겠 pliiz 당신을 도울 수 – mira

+0

연결 문자열은 당신이 연결하는 DB의 이름, 사용자 이름과 비밀 번호가 포함되어 있습니다. 앱의 어딘가에 있어야합니다. 다음은 몇 가지 예입니다. https://www.connectionstrings.com/sql-server/ –

+0

여기에 추가 할 위치가 있습니까 ?? Public Cn As New SqlConnection ("server ="& ServerName & "; 초기 카탈로그 = "& dataBaseName & " ; 통합 보안 = true") – mira

관련 문제