VB.将DataGridVIew内容插入到SQL Server表中



我有问题插入数据从我的datagridview到我的SQL Server表

我得到的错误是:

System.Data.SqlClient。参数化查询'(@Articulo varchar(8000),@Cantidad varchar(8000),@Precio varchar'需要参数'@Articulo',该参数没有提供。

我代码:

Private Sub btnGetTotal_Click(sender As Object, e As EventArgs) Handles btnGetTotal.Click
Dim connection As SqlConnection = New SqlConnection("xxx")
Dim command As SqlCommand = New SqlCommand("INSERT INTO Ordenes_Full (Articulo, Cantidad, Precio) VALUES (@Articulo, @Cantidad, @Precio)")
Dim dataAdapter As New Data.SqlClient.SqlDataAdapter
Dim dataSet As New Data.DataSet
command.Parameters.Add("@Articulo", SqlDbType.VarChar)
command.Parameters.Add("@Cantidad", SqlDbType.VarChar)
command.Parameters.Add("@Precio", SqlDbType.VarChar)
connection.Open()
command.Connection = connection
For i As Integer = 0 To DataGridView1.Rows.Count - 1
command.Parameters(0).Value = DataGridView1.Rows(i).Cells(0).Value
command.Parameters(1).Value = DataGridView1.Rows(i).Cells(1).Value
command.Parameters(2).Value = DataGridView1.Rows(i).Cells(2).Value
command.ExecuteNonQuery()
Next

End Sub

我建议采用完全不同的方法,正如我在对该问题的评论中所建议的那样。如果你要坚持使用这种方法,你必须确保"empty"单元格以NULL的形式保存到数据库中。你可以这样做:

command.Parameters(0).Value = If(DataGridView1.Rows(i).Cells(0).Value, DBNull.Value)

将使用电池的Value,除非它是Nothing,在这种情况下,它将使用DBNull.Value代替。

DBNull.Value是什么ADO。用来表示数据库NULL。它不能只使用Nothing的原因是因为ADO。NET是在可空值类型出现之前创建的。例如,如果您在期望Integer的地方使用Nothing,那么它将被解释为零,而不是NULL

相关内容

  • 没有找到相关文章

最新更新