0

这是问题

cmd.ExectureNonQuery()

错误:

列名或提供的值的数量与表定义不匹配。

这是我添加按钮的代码

Dim con As New SqlClient.SqlConnection("Server=.\SQLExpress;AttachDBFilename=C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Finals.mdf;Database=Finals;Trusted_Connection=Yes;")
Dim cmd As New SqlClient.SqlCommand

cmd.Connection = con
cmd.CommandText = "Insert Into [Finals].[dbo].[Nokia] Values ('" & Unit.Text & "'),('" & Price.Text & " '),('" & Stack.Text & "'),('" & Processor.Text & "'),('" & Size.Text & "'),('" & RAM.Text & "'),('" & Internal.Text & "'),('" & ComboBox1.Text & "')"

con.Open()
cmd.ExecuteNonQuery()
con.Close()

我正在使用 SQL Server 2008 R2,当我按添加时出错,谁能找到我的解决方案,还有谁能帮助我如何创建删除查询?

提前致谢。

4

1 回答 1

1

尝试这个:

Dim con As New SqlClient.SqlConnection("Server=.\SQLExpress;AttachDBFilename=C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Finals.mdf;Database=Finals;Trusted_Connection=Yes;")
Dim cmd As New SqlClient.SqlCommand

cmd.Connection = con
    ' the following text is wrapped for readability
    cmd.CommandText = "Insert Into [Finals].[dbo].[Nokia] Values ('" & Unit.Text & _
        "', '" & Price.Text & "', '" & Stack.Text & "', '" & Processor.Text & "', '" & _
        Size.Text & "', '" & RAM.Text & "', '" & Internal.Text & "', '" & _
        ComboBox1.Text & "')"
    con.Open()
    cmd.ExecuteNonQuery()
    con.Close()
}

您不需要将每个值封装在(and中);整个值列表被封装在一组括号中,就像在我的代码中一样。

另一方面,像这样执行字符串连接会产生 SQL 注入漏洞;您应该使用 sqlParameter 对象将值传递到语句中。

于 2013-10-18T14:34:10.357 回答