0

そのため、データベース プログラムに取り組んでおり、INSERT INTO コマンドを使用してログをデータベースに挿入する必要がありますが、クエリを実行した後もテーブルは空のままです。助けてください!ありがとう〜これがコードです。

    //Predefined connection string
    OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\xxx\Desktop\data.mdb;Jet OLEDB:Database Password=xxx;");




    private void Login_Load(object sender, EventArgs e)
    {
        Log("StartUp", "System", "NULL", "System StartUp");
    }

    public void Log(string Type, string User, string Table_affected, string Remarks)
    {

        string NowDateStamp = string.Format("{0}/{1}/{2}", 
                              DateTime.Now.Day.ToString(), 
                              DateTime.Now.Month.ToString(), 
                              DateTime.Now.Year.ToString());
        string NowTimeStamp = string.Format("{0}:{1}:{2}",
                              DateTime.Now.Hour.ToString(),
                              DateTime.Now.Minute.ToString(),
                              DateTime.Now.Second.ToString());
        string tempSQL = string.Format("INSERT INTO 'Log' VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}')",
                                        NowDateStamp,
                                        NowTimeStamp,
                                        Type,
                                        User,
                                        Table_affected,
                                        Remarks);
        vcon.Open();
        OleDbCommand vcom = new OleDbCommand(tempSQL, vcon);
        vcom.ExecuteNonQuery();
        MessageBox.Show("Done"); // <-- This MessageBox isn't even showing.
        vcon.Close();
    }

したがって、基本的にプログラムは起動して時間を記録しますが、データベースには何も行われていないようです。誰か助けてもらえますか? ありがとう!

4

3 に答える 3

6

クエリを実行すると例外が発生しますが、どこかでその例外がキャッチされて無視されます。

テーブル名があるべき場所に文字列リテラルを使用しています。単なる識別子のいずれかである必要があります。

INSERT INTO Log VALUES ...

または角括弧内の識別子:

INSERT INTO [Log] VALUES ...
于 2013-03-04T15:07:43.790 に答える
0

これを置き換えます:

INSERT INTO 'Log' VALUES 

これで:

INSERT INTO Log VALUES 
于 2013-03-04T15:08:29.280 に答える
0

他の人が言ったことに加えて、構文エラーもあると思います。値を挿入する列を指定する必要があります。

INSERT INTO Log (<column1>,<column2>,...)
VALUES (<Value to insert into column1>, <Value to insert into column 2>,...)
于 2013-03-04T15:29:05.197 に答える