-1

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

4

1 回答 1

-2

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

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

编辑

如果这不起作用,则此问题可能有两个原因。

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

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

我对这个问题的回答会帮助你

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

始终注意SQL 注入。使用参数化查询(带有@的查询)。

更多关于 SQL 注入

于 2012-05-15T15:21:51.993 回答