【发布时间】:2021-01-15 22:22:28
【问题描述】:
我有一个问题。我有 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 升级到更强大的 rdbms,例如 SQL Express 或 MySQL?
-
当您启动应用程序时。它可能会压缩和修复数据库吗?
-
不,它没有。
-
我确实考虑过,但部门不同,因此转换为 SQL 需要很长时间。这就是为什么我正在寻找快速修复:)
标签: c# wpf ms-access caliburn.micro