如何使用sql连接此项目

问题描述 投票:-2回答:1

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();
c# sql-server asp.net-mvc sqlconnection
1个回答
1
投票

你需要解决一些问题:

  1. 删除查询中的最后一个,
  2. 我不知道您的数据库中是否有一个名为Table的表,但您应该检查名称是否正确。
  3. 当您不知道如何更正代码时,最好使用try-catch语句来了解代码中真正的问题所在。 Here is an example 关于如何在C#代码中处理SQL异常。
  4. 您正在获取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
}

更多信息:

© www.soinside.com 2019 - 2024. All rights reserved.