我有一个奇怪的问题。我在 MS Access 中编写了一个查询,当从 MS Access 运行时,它会在数据库中完美地插入一个值,但是当从 C# 执行相同的查询时,它会将“验证文本”显示为 OleDbException 并且插入命令失败。“验证规则”是“ @ .*” 该列保存的电子邮件应该有一个“@”和一个点“。” 在它之后。删除“验证规则”并从 C# 执行查询时没有问题。它仅在设置了验证规则并且仅从 C# 而不是从 MS Access 查询执行中发生错误时发生。
我已将代码和数据库上传到: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);
}
数据库快照: