2012-02-29 6 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

関連する問題