我收到异常“无法打开数据库文件”如何解决它
本文关键字:何解决 解决 文件 数据库 异常 | 更新日期: 2023-09-27 18:34:18
在这里我使用的是SQLite数据库,代码在这里:
using (SQLiteCommand cmd = new SQLiteCommand(query, conn))
{
conn.Open();
cmd.ExecuteNonQuery();
cmd.CommandText =
"insert into users(name, password, priviledges) values(" +
"'" + UsernameText.Text.Trim() + "', " + "'" +
QuickMethods.MD5(PasswordText.Password.Trim()) + "', " + "524287" + ")";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO company VALUES('name','" + CompanyName.Text.Trim() + "');";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO company VALUES('address','" + CompanyAddress.Text.Trim() + "');";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO company VALUES('phone','" + CompanyPhone.Text.Trim() + "');";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO company VALUES('email','" + CompanyEmail.Text.Trim() + "');";
cmd.ExecuteNonQuery();
conn.Close();
}
我在行cmd.ExecuteNonQuery()中得到了异常,如何解决它。
你的第一个cmd.ExecuteNonQuery();
是罪魁祸首。下面的连接开口。
我认为它在那里给出错误,因为直到那个时候才设置命令。评论它,它应该没问题。
编辑
如果这不起作用此问题可能有两个原因。
首先 - 连接到正确的数据库,但那里没有这样的表。
第二 - 连接到错误的数据库。在这种情况下,它不会出错。它在指定位置创建数据库文件。甚至打开数据库。但是在获取/更新数据时会出现此错误。在这种情况下,指定的位置将包含 0 KB 的数据库。
我对这个问题的回答将帮助你
与问题无关的注释/警告,与答案无关:
始终注意SQL注入。使用参数化查询(带有 @ 的查询)。
有关 SQL 注入的更多信息