【发布时间】:2015-03-06 22:53:03
【问题描述】:
再次原谅我再次提出这个愚蠢的问题,但是......我真的不知道如何解决插入值时的另一个语法错误
在我的数据库中(访问 2013)我的表中有这个字段
字段 - 数据类型
否 - 号码
RANK - 短文本
姓氏 - 短文本
名字 - 短文本
中间名 - 短文本
地址 - 短文本
联系电话 - 短文本
ACCNT 代码 - 短文本
单位代码 - 编号
ATM ACCNT NUMBER - 号码
养老金类型 - 短文本
备注 - 短文本
这是我的代码:
Imports System.Data.OleDb
Public Class Form2
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim con As New OleDbConnection
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Retiree.accdb"
Dim cmd As New OleDb.OleDbCommand
If Not con.State = ConnectionState.Open Then
con.Open()
End If
cmd.Connection = con
cmd.CommandText = "INSERT INTO Retiree([NO], [RANK], [LAST NAME], [FIRST NAME], [MIDDLE NAME], [ADDRESS], [CONTACT NUMBER], [ACCNT CODE], [UNIT CODE], [ATM ACCNT NUMBER], [PENSION TYPE], [REMARKS]) VALUES(" & num & ",'" & TextBox4.Text & "','" & TextBox3.Text & "','" & TextBox2.Text & "','" & TextBox5.Text & "','" & RichTextBox1.Text & "','" & TextBox16.Text & "','" & TextBox15.Text & "'," & TextBox14.Text & "," & TextBox13.Text & ",'" & TextBox12.Text & "','" & TextBox1.Text & "')"
cmd.ExecuteNonQuery()
con.Close()
Me.Close()
End Sub
End Class
【问题讨论】:
-
如果您使用
Parameterized Query,您可能会修复错误并失去 SQL 注入攻击的风险。 -
鉴于您组装查询的方式,您将容易受到由于数据内容而发生的各种错误的影响。首先显示给你一个错误的实际查询,然后从那里开始工作。
-
如何参数化我的查询?以及如何显示给出错误的实际查询。对不起,我不擅长用 vb 编程。我希望你能为我解释一下。提前谢谢
-
它可能认为是重复的,但我的问题是我插入的值。它给了我一个语法错误信息
标签: mysql sql vb.net ms-access ms-access-2013