所以我有下面的代码,点击“button3”后,我应该将dataGridView的内容插入到我的数据库中。我收到了错误:
“查询表达式”中的语法错误(缺少运算符),单引号中我的第一列的第一个值,就像它读取数据一样,但无法分辨出什么当我单击“确定”关闭消息时,弹出另一条消息,同一列的第二个值现在用单引号;依此类推,直到达到最后一个值,然后最后,弹出错误框:
“INSERT INTO语句中的语法错误”
我计划在我开始工作之后对代码进行参数化;所以不用担心。 : - )
请帮助!!!!感谢所有帮助。
private void button3_Click(object sender, EventArgs e)
{
string ConnString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Search\\Database.accdb"; //Persist Security Info=True";
for(int i=0; i< dataGridView1.Rows.Count;i++)
{
string StrQuery = "INSERT INTO script_Orders (" + "script, " + "cust_Name) VALUES (" + dataGridView1.Rows[i].Cells["Prescription"].Value + ", " + dataGridView1.Rows[i].Cells["Customer_Name"].Value + ");";
try
{
using (OleDbConnection conn = new OleDbConnection (ConnString))
{
using (OleDbCommand comm = new OleDbCommand(StrQuery, conn))
{
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
答案 0 :(得分:2)
试试这个
string StrQuery = String.Format("INSERT INTO script_Orders(script,cust_Name) VALUES ('{0}','{1}')", dataGridView1.Rows[i].Cells["Prescription"].Value, dataGridView1.Rows[i].Cells["Customer_Name"].Value);