这里我使用的是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()处遇到异常如何解决。
答案 0 :(得分:-2)
你的第一个cmd.ExecuteNonQuery();
是罪魁祸首。下面的连接开口。
我认为它会给出错误,因为直到那个时候才设置命令。评论它,它应该没问题。
修改强>
如果那样不起作用 这个问题可能有两个原因。
首先 - 连接到正确的数据库,但那里没有这样的表。
第二 - 连接错误的数据库。在这种情况下,它没有错误。它在指定位置创建数据库文件。甚至打开数据库。但是在获取/更新数据时会出现此错误。在这种情况下,指定的位置将包含0 KB的数据库。
我对此question的回答将帮助您
与问题相关的注释/警告,与答案无关:
始终注意SQL Injection。使用参数化查询(带@的那个。)。