gpt4 book ai didi

sql - VB.Net 插入多条记录

转载 作者:行者123 更新时间:2023-12-04 18:44:37 24 4
gpt4 key购买 nike

我在 DataGridView 控件中有几行。我想将每一行插入数据库。我是这样试的。但是它给出了参数已经添加的错误。如何添加参数名称一次,然后每次添加值并每次执行?

    Using connection As New SqlCeConnection(My.Settings.databaseConnectionString)
Using command As New SqlCeCommand("INSERT INTO table_master(item, price) VALUES(@item, @price)", _
connection)

connection.Open()

For Each r As DataGridViewRow In dgvMain.Rows
If (Not String.IsNullOrWhiteSpace(r.Cells(1).Value)) Then
command.Parameters.AddWithValue("@item", r.Cells(1).Value.Trim)
command.Parameters.AddWithValue("@price", r.Cells(2).Value)


command.ExecuteNonQuery()
End If
Next

End Using
End Using

最佳答案

在循环外添加参数,在循环内只更新它们的值

Using connection As New SqlCeConnection(My.Settings.databaseConnectionString)
Using command As New SqlCeCommand("INSERT INTO table_master(item, price) VALUES(@item, @price)", _
connection)

connection.Open()

' Create and add the parameters, just one time here with dummy values or'
' use the full syntax to create each single the parameter'
command.Parameters.AddWithValue("@item", "")
command.Parameters.AddWithValue("@price", 0)

For Each r As DataGridViewRow In dgvMain.Rows
If (Not String.IsNullOrWhiteSpace(r.Cells(1).Value)) Then

command.Parameters("@item").Value = r.Cells(1).Value.Trim
command.Parameters("@price").Value = r.Cells(2).Value
command.ExecuteNonQuery()
End If
Next

End Using
End Using

使用 AddWithValue 是一个不错的快捷方式,但也有其缺点。例如,不清楚 Price 列需要什么数据类型。 .使用 Parameter 构造函数,您可以为参数指定确切的数据类型并避免可能的转换错误
Dim p = new SqlCeParameter("@price", SqlDbType.Decimal)
command.Parameters.Add(p)
......

关于sql - VB.Net 插入多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17340063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com