【发布时间】:2021-03-31 17:33:01
【问题描述】:
我不明白为什么会出现此错误:
System.Data.SqlClient.SqlException: '12' 附近的语法不正确。'
我的代码:
Imports System.Data.SqlClient
Public Class produktm
Dim Con As New SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\MON\Documents\profitmon.mdf;Integrated Security=True;Connect Timeout=30")
Public Sub populate()
Con.Open()
Dim sql = "select * from ProduktTable"
Dim adapter As SqlDataAdapter
adapter = New SqlDataAdapter(sql, Con)
Dim builder As SqlCommandBuilder
builder = New SqlCommandBuilder(adapter)
Dim ds As DataSet
ds = New DataSet
adapter.Fill(ds)
ProduktDataList.DataSource = ds.Tables(0)
Con.Close()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Con.Open()
Dim query As String
query = "Insert Into ProduktTable values(" & ProduktId.Text & ",'" & ProdEmri.Text & ",'" & ProdSasia.Text & ",'" & ProdQmimi.Text & ",'" & ProdPershkrimi.Text & ",'" & ProdKategori.SelectedItem.ToString() & "')"
Dim cmd As SqlCommand
cmd = New SqlCommand(query, Con)
cmd.ExecuteNonQuery()
MsgBox("Produkti u shtua me sukses")
Con.Close()
End Sub
Private Sub produktm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
populate()
End Sub
End Class
Visual Studio 说这行是问题
cmd.ExecuteNonQuery()
【问题讨论】:
-
请停止喊叫。全部大写的文本更难阅读和理解,并且 SHOUTING 不会更快地为您提供帮助。当你向我们寻求帮助时,对我们大喊大叫也是相当不礼貌的。谢谢。
-
如果动态生成 sql 语句,调试与执行相关的任何错误的第一部分是查看生成的语句。停止懒惰和坏习惯。始终在插入语句中指定列列表。
-
所有关于 sql 注入和有效的东西并不是使用参数的最佳理由。真正作为一名开发人员,只是让执行大量的 sql 语句更简单、更易于维护、更令人愉快,而不是围绕 sting 连接出现的所有问题
-
看起来你的单引号匹配了。仔细检查哪些值应该有单引号。我同意@SMor,生成您的 sql 语句以查看您传递给 SQL 的内容。
标签: sql-server vb.net visual-studio