use*_*271 5 c# sql oledbcommand
我无法将数据从文本框插入ms访问数据库,我收到错误" Syntax error in INSERT INTO."
有人可以帮帮我吗?这是代码:
public void button1_Click(object sender, EventArgs e)//save
{
using (OleDbConnection conn = new
OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=|DataDirectory|\productdb.mdb"))
{
OleDbCommand CmdSql = new OleDbCommand("Insert into [product](Kod, names,
price,type,volume,manufacturer,importer)
enter code here
{
conn.Open();
CmdSql.Parameters.AddWithValue("@Kod", textBox1.Text);
CmdSql.Parameters.AddWithValue("@names", textBox2.Text);
CmdSql.Parameters.AddWithValue("@price", textBox3.Text);
CmdSql.Parameters.AddWithValue("@type", textBox4.Text);
CmdSql.Parameters.AddWithValue("@volume", textBox5.Text);
CmdSql.Parameters.AddWithValue("@manufacturer", textBox6.Text);
CmdSql.Parameters.AddWithValue("@importer", textBox7.Text);
CmdSql.ExecuteNonQuery();// i get the error here<<<
conn.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
您缺少VALUESinsert语句的部分:
OleDbCommand CmdSql = new OleDbCommand("Insert into [product] (Kod, [names], price, type, volume, manufacturer, importer) VALUES (@Kod, @names, @price, @type, @volume, @manufacturer, @importer)", conn);
Run Code Online (Sandbox Code Playgroud)
并且您正在使用Access和OldeDbCommand ...所以您实际上需要使用?而不是命名参数:
OleDbCommand CmdSql = new OleDbCommand("Insert into [product] (Kod, [names], price, type, volume, manufacturer, importer) VALUES (?, ?, ?, ?, ?, ?, ?)", conn);
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此问题.
附注:确保将任何保留的关键字包装在方括号中.