簡體   English   中英

將數據表從存儲過程插入數據庫表

[英]Insert datatable into a database table from a stored procedure

我有一個帶有一些行的數據表,我需要使用存儲過程將該數據表插入數據庫。

 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."}如何擺脫這個異常,我們是否可以插入數據表而沒有for循環。 誰能幫我

您應該創建單獨的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM