我在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
Run Code Online (Sandbox Code Playgroud)
在循环外部和循环内部添加参数仅更新其值
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
Run Code Online (Sandbox Code Playgroud)
使用AddWithValue是一个很好的快捷方式,但有其缺点.例如,不清楚列需要什么数据类型Price
.使用Parameter构造函数,您可以指定参数的确切数据类型,并避免可能的转换错误
Dim p = new SqlCeParameter("@price", SqlDbType.Decimal)
command.Parameters.Add(p)
......
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8497 次 |
最近记录: |