0

したがって、以下のコードがあり、「button3」をクリックすると、dataGridView の内容がデータベースに挿入されます。エラーが発生しています:

"クエリ式 ' 'に構文エラー (演算子がありません) があり、最初の列の最初の値が一重引用符で囲まれています。データを読み取ったかのように見えますが、それをどう処理すればよいかわかりません。[OK] をクリックすると、 " メッセージを閉じると、別のメッセージがポップアップ表示され、同じ列の 2 番目の値が一重引用符で囲まれます。最後の値に到達するまで続き、最後にエラー ボックスに次のメッセージが表示されます。

「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 に答える