Как связать этот проект с SQL - PullRequest
0 голосов
/ 05 апреля 2019

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();

1 Ответ

1 голос
/ 06 апреля 2019

Вам нужно исправить пару вещей:

  1. Удалите последние , в вашем запросе.
  2. Я не знаю, есть ли у вас таблица с именем Таблица в вашей базе данных, но вам следует проверить правильность имени.
  3. Если вы не знаете, как исправить свой код, лучше использовать оператор try-catch , чтобы понять, в чем реальная проблема в вашем коде. Вот пример о том, как обрабатывать исключения SQL в коде C #.
  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
}

Дополнительная информация:

...