2012-02-29 2 views
0

저장 프로 시저를 사용하여 데이터베이스에 해당 데이터 테이블을 삽입해야하는 행이있는 데이터 테이블이 있습니다. 나는이 작업을 수행 할 때저장 프로 시저에서 데이터베이스 테이블에 데이터 테이블 삽입

For Each row As DataRow In dt.Rows 
      cmd.Parameters.Add(New MySqlParameter("@DOWNLOAD_ID", dt.Rows(0)("DOWNLOAD_ID").ToString())) 
      cmd.Parameters.Add(New MySqlParameter("@FINALY_FIELDCODE", dt.Rows(0)("FINALY_FIELDCODE").ToString().Replace("|", "").ToString())) 
      cmd.Parameters.Add(New MySqlParameter("@UNITS", dt.Rows(0)("UNITS").ToString())) 
      cmd.Parameters.Add(New MySqlParameter("@CURRECY_CODE", dt.Rows(0)("CURRENCY_CODE").ToString())) 
     Next 
     cmd.ExecuteNonQuery() 

나는이 예외를 제거하는 방법 예외 {"Parameter '@DOWNLOAD_ID' has already been defined."}을 가지고 우리는 루프 아웃으로 데이터 테이블을 삽입 할 수 있습니다. 어느 한 날

답변

1

당신은 별도의 MySqlCommands를 만들어야합니다 도움 직접 실행할 수 있습니다

Using mysqlConnection = New MySqlConnection(connectionString) 
    mysqlConnection.Open() 
    For Each row As DataRow In dt.Rows 
     Using cmd = New MySqlCommand("StoredProcedureName", mysqlConnection) 
      cmd.CommandType = CommandType.StoredProcedure 
      cmd.Parameters.Add(New MySqlParameter("@DOWNLOAD_ID", dt.Rows(0)("DOWNLOAD_ID").ToString())) 
      cmd.Parameters.Add(New MySqlParameter("@FINALY_FIELDCODE", dt.Rows(0)("FINALY_FIELDCODE").ToString().Replace("|", "").ToString())) 
      cmd.Parameters.Add(New MySqlParameter("@UNITS", dt.Rows(0)("UNITS").ToString())) 
      cmd.Parameters.Add(New MySqlParameter("@CURRECY_CODE", dt.Rows(0)("CURRENCY_CODE").ToString())) 
      cmd.ExecuteNonQuery() 
     End Using 
    Next 
End Using 
+0

을 : 안녕하세요 .. 덕분에 그 작업. download_id 및 finaly_fieldcode는 기본 키입니다. 같은 download_id 쿼리를 사용하여 수동으로 레코드를 삽입 할 수 있습니다. 저장 프로 시저에서 삽입 할 수 없습니다. – JayOnDotNet

관련 문제