我收到异常“无法打开数据库文件”如何解决它

本文关键字:何解决 解决 文件 数据库 异常 | 更新日期: 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 注入的更多信息