我需要帮助解决此错误。
这是我使用Access数据库和构建配置平台的错误{"The type initializer for 'System.Transactions.Diagnostics.DiagnosticTrace' threw an exception."}
'System.Transactions.Diagnostics.DiagnosticTrace'的类型初始值设定项引发异常
是任何CPU。
有时代码运行良好,有时突然抛出此异常。这里有很多类似的问题,但没有一个解决我的错误。
这是我的连接字符串
DbPath = @"d:\Ek.mdb";
ConnectionString [email protected]"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+DbPath+";User Id=admin;Password=;";
这是我的函数打开连接
我收到错误的Con.Open()
public bool OpenConnection()
{
if (Con == null)
{
Con = new OleDbConnection(ConnectionString);
}
else if ((Con.State == ConnectionState.Broken || Con.State == ConnectionState.Closed) && (Con.State!=ConnectionState.Open))
{
Con.Open();
Tx = Con.BeginTransaction(IsolationLevel.ReadCommitted);
return true;
}
else if (IsConnectionBusy())
{
throw new DataException("Connection Busy");
}
return false;
}
这我怎么关闭运行后连接查询
public Boolean CloseConnection()
{
if(IsConnectionBusy())
throw new DataException("Connection Busy");
if (Con.State==ConnectionState.Open)
{
Tx.Commit();
Con.Close();
return true;
}
return false;
}
public bool IsConnectionBusy()
{
switch (Con.State)
{
case ConnectionState.Connecting:
case ConnectionState.Executing:
case ConnectionState.Fetching:
return true;
}
return false;
}
我找不到为什么它有时会完美运行,然后有时会抛出此异常。
任何帮助将不胜感激。我为解决这个错误尝试了太多,但不能。
我注意到了这一点。
else if ((Con.State == ConnectionState.Broken || Con.State == ConnectionState.Closed) && (Con.State!=ConnectionState.Open))
的连接是closed state
。在执行Con.Open()
语句时,Connection
状态更改为Open
,并在此之后引发此错误。
同样在调试时不会引起错误。只有当我没有在该地点放置breakpoint
时才会造成这种情况。
在Con.Open()
当我把一个断点,并在那里停了几秒钟,只有第一次然后没有错误抛出。之后,如果我禁用了断点并且没有错误发生...... !!!
其中MS办公室/ Access版本您使用的? – Rezoan
我正在使用2007年,我创建了数据库2000-2003兼容 – coding
此外,我没有得到错误,如果我把一个断点。只有在没有断点时才会引起错误,并且错误不会始终引起。 – coding