0

所以我有下面的代码,点击“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);
                    }
                }
        }
4

1 回答 1

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);
于 2012-12-07T16:48:30.203 回答