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

时间:2012-05-15 15:13:39

标签: c# database sqlite

这里我使用的是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()处遇到异常如何解决。

1 个答案:

答案 0 :(得分:-2)

你的第一个cmd.ExecuteNonQuery();是罪魁祸首。下面的连接开口。

我认为它会给出错误,因为直到那个时候才设置命令。评论它,它应该没问题。

修改

如果那样不起作用 这个问题可能有两个原因。

首先 - 连接到正确的数据库,但那里没有这样的表。

第二 - 连接错误的数据库。在这种情况下,它没有错误。它在指定位置创建数据库文件。甚至打开数据库。但是在获取/更新数据时会出现此错误。在这种情况下,指定的位置将包含0 KB的数据库。

我对此question的回答将帮助您

与问题相关的注释/警告,与答案无关:

始终注意SQL Injection。使用参数化查询(带@的那个。)。

More on SQL Injection