如何解决外部组件引发异常
我有一个问题。我有Access数据库和WPF应用程序。该应用程序为32位版本,Access数据库为32位。并且每隔一段时间,应用程序就会在连接到数据库时向我显示错误。外部组件引发异常。而且,如果我吃了这个错误或尝试再次连接到数据库,它将不起作用。我必须重新启动该应用程序,然后它才能再次工作,直到它在接下来的15个左右的数据库连接事务中抛出并再次出错。如果你明白我的意思。
如何重新启动该错误,以便我可以再次连接到数据库或防止该错误引发。
请帮助我。 我不知道要提供哪种相关代码。
try
{
List<IDModel> output = new List<IDModel>();
using (OleDbConnection connection = new OleDbConnection(Conn))
{
await connection.OpenAsync();
using (OleDbCommand Command = new OleDbCommand("SELECT * FROM DATA WHERE [STATUS] = @status;",connection))
{
Command.Parameters.AddWithValue("@status",_status);
var reader = await Command.ExecuteReaderAsync();
while (reader.Read())
{
output.Add(InsertID
((int)reader["ID"],(string)reader["STANDARD"],(string)reader["NAZIV"],(string)reader["PosloVNA ENOTA"],(string)reader["IZVOR nesKLADNOSTI"],(string)reader["ODDELEK"],(string)reader["OPIS"],(string)reader["SLIKA 1"].ToString(),(string)reader["SLIKA 2"].ToString(),(string)reader["SLIKA 3"].ToString(),(string)reader["SLIKA 4"].ToString(),(string)reader["SLIKA 5"].ToString(),(string)reader["EXCEL 1"].ToString(),(string)reader["PDF 1"].ToString(),(string)reader["SLIKA 6"].ToString(),(string)reader["EXCEL 2"].ToString(),(string)reader["PDF 2"].ToString(),(string)reader["KOREKCIJA"].ToString(),(string)reader["SLIKA 7"].ToString(),(string)reader["EXCEL 3"].ToString(),(string)reader["PDF 3"].ToString(),(string)reader["KOREKTIVNI"].ToString(),(string)reader["VZROK"].ToString(),(string)reader["OCENA"].ToString(),(string)reader["OPOMBA"].ToString(),(string)reader["nesKLADNOST ODPRL"].ToString(),(string)reader["KOREKCIJA PODAL"].ToString(),(string)reader["nesKLADNOST ZAPRL"].ToString(),(string)reader["nesKLADNOST VALIDIRAL"].ToString(),(string)reader["ROK ZA REŠITEV"].ToString(),(bool)reader["BIG EVENT"],(string)reader["nesKLADNOST ODPRTA"].ToString(),(string)reader["KOREKCIJA PODANA"].ToString(),(string)reader["nesKLADNOST ZAPRTA"].ToString(),(string)reader["nesKLADNOST VALIDIRANA"].ToString()
));
}
}
return output;
}
}
catch (Exception)
{
throw;
}
最诚挚的问候!
解决方法
我认为问题出在访问数据库上。以我的经验,Access有时会失败,没有明显的原因。我花了很多时间调查访问崩溃,但没有找到解决方案。有些事情可能会有所帮助:
- 确保仅从单个线程使用数据库。
- 确保正确处理所有与数据库相关的对象。
- 确保数据库不大,数据库大小限制为2Gb。运行压缩可能会有所帮助。
- 添加更好的错误处理,捕获错误并重试该操作。如果发生重复的失败,请处置并重新创建数据库连接。
- 将数据库访问权移至另一个进程。这有助于错误处理,允许您在需要时重新启动整个过程。
我的首选解决方案是完全避免使用访问权限。花时间将数据移植到一些真实的数据库中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。