1

私は奇妙な問題を抱えています。MS Access から実行すると値をデータベースに完全に挿入するクエリを MS Access で作成しましたが、同じクエリを C# から実行すると、「検証テキスト」が OleDbException として表示され、挿入コマンドが失敗します。"Validation Rule" は " @ .*" です。この列には、"@" と "." が 1 つずつ含まれる電子メールが保存されます。その後。「Validation Rule」を外してC#からクエリを実行する場合は問題ありません。検証ルールが設定されている場合にのみ発生し、MS Access クエリの実行ではなく、C# からのみエラーが発生します。

コードとデータベースをhttp://www.2shared.com/file/XYmFD8Mg/Database_Validation.htmlにアップロードしました。

MS Access での SQL クエリ:

INSERT INTO EMail ( EMail, Company )
VALUES ('bbb@qwerty.com', 'Company');

コードは次のとおりです。

    try
    {
        string dbPath = null;

        if (File.Exists(Path.GetFullPath(@"..\..\..\Database.accdb")))
            dbPath = Path.GetFullPath(@"..\..\..\Database.accdb");

        dbConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dbPath);
        dbConnection.Open();

        if (0 >= new System.Data.OleDb.OleDbCommand("INSERT INTO EMail ( EMail, Company ) VALUES ('bbb@qwerty.com', 'Company')", dbConnection).ExecuteNonQuery())
            MessageBox.Show("Could not insert 'bbb@qwerty.com'. Check if already inserted.");

        try { dbConnection.Close(); }
        catch (Exception) { }
    }
    catch (Exception Ex)
    {
        try { dbConnection.Close(); }
        catch (Exception) { }

        MessageBox.Show(Ex.Message);
    }

データベース スナップショット:

ここに画像の説明を入力

4

1 に答える 1