[英]SQLite database is locked #2
我有 2 个查询,但在更新cmd2.ExecuteNonQuery();
它抛出一个异常“数据库被锁定”:
if (txt_balance.Text != "")
{
using ( SQLiteConnection con = new SQLiteConnection(obj.getDbSourceFile))
{
con.Open();
SQLiteCommand cmd1 = new SQLiteCommand("SELECT [supplier_balance] FROM [s_supplier] where supplier_name='" + comboPurchaseSupplier.Text + "'", con);
SQLiteDataReader DR = cmd1.ExecuteReader();
// hfcconn.Close();
if (DR.HasRows)
{
if (DR.Read())
{
//hfcconn.Open();
using (SQLiteConnection con2 = new SQLiteConnection(obj.getDbSourceFile))
{
SQLiteCommand cmd2 = new SQLiteCommand("update [s_supplier] set supplier_balance=" + (DR.GetInt32(0) + Convert.ToInt32(txt_balance.Text)) + " where supplier_name='" + comboPurchaseSupplier.Text + "'", con2);
con2.Open();
cmd2.ExecuteNonQuery();
DR.Dispose();
// con.Close();
}
}
}
// con.Close();
}
}
问题是您正在使用两个连接。
连接(及其事务)彼此隔离,因此第二个连接无法更新第一个连接仍具有打开读取器的表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.