插入语句中的语法错误.c#
本文关键字:错误 语法 语句 插入 | 更新日期: 2023-09-27 18:04:32
当我试图更新我的MS Access数据库时,插入语句发生语法错误。
- 数据库名称= student
- 表名=学生表
private void button1_Click(object sender, EventArgs e)
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "INSERT INTO student table([Name],[Class])" + "values('" + textBox1 + "','" + textBox2 + "')";
connection.Close();
command.ExecuteNonQuery();
MessageBox.Show("Data Saved");
}
如果您的表名不止一个单词,您需要使用方括号,如[student table]
使用using
语句自动处理连接和命令,而不是手动调用Close
或Dispose
方法。
private void button1_Click(object sender, EventArgs e)
{
using(var connection = new OleDbConnection(connection))
using(var command = connection.CreateCommand())
{
command.CommandText = @"INSERT INTO [student table]([Name],[Class])
VALUES(?, ?)";
command.Parameters.AddWithValue("?", textBox1);
command.Parameters.AddWithValue("?", textBox2);
connection.Open();
int count = command.ExecuteNonQuery();
if(count > 0)
MessageBox.Show("Data Saved");
}
}
顺便说一下,我怀疑如果这些textBox1
和textBox2
是TextBox
不是一个变量,你需要使用它们与它们的.Text
属性。
-
1你需要使用
textBox1.Text
和textBox2.Text
代替textBox1
和textBox2
-
第二,在执行命令前不要关闭连接。
-
第三次使用参数
总结一下:
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "INSERT INTO [student table] ([Name],[Class]) values(@par1,@par2)";
command.Paramaters.Add("@par1",textBox1.Text);
command.Paramaters.Add("@par2",textBox2.Text);
command.ExecuteNonQuery();
connection.Close();