我有一個奇怪的問題。我在MS Access中寫了一個查詢,它在從MS Access運行時完美地插入數據庫中,但是當從C#執行相同的查詢時,它會將「驗證文本」顯示爲OleDbException,並且插入命令失敗。 「驗證規則」爲「@。*」該列保存應該有一個「@」和一個點「。」的電子郵件。之後。當「驗證規則」被移除並且從C#執行查詢時沒有問題。它僅在設置驗證規則時發生,並且僅從C#發生錯誤,而不是從MS Access查詢執行發生。當「驗證規則」設置時,SQL在MS Access中執行良好,但在C#中不執行
我已經上傳的代碼和數據庫:http://www.2shared.com/file/XYmFD8Mg/Database_Validation.html
SQL查詢在MS Access:
INSERT INTO EMail (EMail, Company)
VALUES ('[email protected]', '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 ('[email protected]', 'Company')", dbConnection).ExecuteNonQuery())
MessageBox.Show("Could not insert '[email protected]'. Check if already inserted.");
try { dbConnection.Close(); }
catch (Exception) { }
}
catch (Exception Ex)
{
try { dbConnection.Close(); }
catch (Exception) { }
MessageBox.Show(Ex.Message);
}
數據庫快照: