【发布时间】:2013-06-17 07:38:42
【问题描述】:
我遇到了一个奇怪的问题。我在 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);
}
数据库快照:
【问题讨论】:
标签: c# sql database ms-access ms-access-2000