executenonquery()
错误 C#这就是我的代码的样子
con.Open();
String name = textBox1.Text.ToString();
String address = textBox2.Text.ToString();
String id = textBox3.Text.ToString();
int iid = Int32.Parse(id);
String semester = textBox4.Text.ToString();
int i_sem = Int32.Parse(semester);
String field = comboBox1.SelectedItem.ToString();
String qry = "insert into Table values('" + name + "','" + address + "'," + iid + "," + i_sem + ",'" + field + "',)";
SqlCommand cmd = new SqlCommand(qry, con);
cmd.ExecuteNonQuery();
executenonquery()
总是让我遇到问题!
int i = cmd.ExecuteNonQuery();
您需要修复几件事:
- 删除查询中的最后一个
,
。 - 我不知道您的数据库中是否有一个名为 Table 的表,但您应该检查名称是否正确。
- 当你不知道如何纠正你的代码时,最好使用 try-catch 语句来了解代码中真正的问题在哪里。下面是有关如何在 C# 代码中处理 SQL 异常的示例。
- 您获得 SqlException 是因为您的查询语法错误,但还有另一种方法可以将 SQL 参数添加到查询中,而无需使用字符串变量。您可以使用
SqlParameterCollection.AddWithValue(String, Object)
方法来实现相同的结果并避免 SQL 注入:
command.Connection = connection;
command.CommandType = CommandType.Text;
command.CommandText = "INSERT into YourTableName (name, address, id, semester, field) VALUES (@name, @address, @id, @semester, @field)";
command.Parameters.AddWithValue("@name", name);
command.Parameters.AddWithValue("@address", address);
command.Parameters.AddWithValue("@id", iid);
command.Parameters.AddWithValue("@semester", i_sem);
command.Parameters.AddWithValue("@field", field);
try
{
connection.Open();
int recordsAffected = command.ExecuteNonQuery();
}
catch(SqlException)
{
// error here
}
finally
{
connection.Close(); //close your connection if you do not need to keep it open
}
更多信息:
- 添加值方法
- SQL 注入
- 与此主题相关的其他示例