0

[ID TIME CODE REASON]列を持つテーブル(DV1)を持つAccessDBがあります。テーブルを更新しようとしています。INSERTINTOsytaxエラーが発生し続けます。私が見るものはすべてうまく見えます。私はすべてを試しました。データベースを開いていると、エラーが発生します。何かご意見は?

private void WRTODB_Click(object sender, EventArgs e)
    {
        OleDbConnection machStopDB = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+@"C:\Users\sgarner\Google Drive\Visual Studio 2012\Timer test\WRITE TO DB\WRITE TO DB\Machine_Stop.accdb");
        machStopDB.Open();
        string str = "INSERT INTO DV1(TIME,CODE,REASON)" +
            "VALUES( ('" + DateTime.Now + "'),('" + textBox1.Text + "'),('" + textBox2.Text + "'))";
        OleDbCommand insertCmd = new OleDbCommand(str, machStopDB);
        insertCmd.ExecuteNonQuery();
        machStopDB.Close();
    }

これは私が使用しているテストプログラムです。

4

1 に答える 1

1

次のコードには、上記のコメントによって提供された適切なアイデアが組み込まれています。

private void WRTODB_Click(object sender, EventArgs e)        
{
    try
    {
        using (SqlConnection dbConnection = new SqlConnection()) 
        {
            string Source = @"C:\Users\sgarner\Google Drive\Visual Studio 2012\Timer test\WRITE TO DB\WRITE TO DB\Machine_Stop.accdb";
            dbConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Source;
            dbConnection.Open();
            using (SqlCommand command = new SqlCommand("INSERT INTO DV1([TIME],CODE,REASON) VALUES ([pTime],[pCode],[pReason])", dbConnection))
            {
                command.Parameters.AddWithValue("pTime", DateTime.Now);
                command.Parameters.AddWithValue("pCode", textBox1.Text);
                command.Parameters.AddWithValue("pReason", textBox2.Text);
                command.ExecuteNonQuery();
            }
            dbConnection.Close();
        }
    }
    catch (Exception ex)
    {
        throw new Exception(ex.Message);
    }
}
于 2013-03-20T16:49:02.803 に答える