Спасибо за помощь. Все вы (буквально)delete string combobox item C#
Я проверил другую часть своего кода, где я обновлял запись, и использовал этот код и модифицировал его. Сейчас он работает
Здесь
string sql = "DELETE from Login WHERE UserName = '" + comboBox1.SelectedItem.ToString() + "'";
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
cmd.Parameters.Add(new SqlParameter("@UserName", comboBox1.SelectedItem.ToString()));
int rowdel = cmd.ExecuteNonQuery();
MessageBox.Show("Done!");
Это мой код для удаления конкретной строки из базы данных, выбранные с помощью выпадающего списка. Мой учитель использовал этот же код, и его программа работала. Однако он показывает ошибку на:
"ИНТ rowInserted = cmd.ExecuteNonQuery();"
это говорит
необработанное исключение типа 'System.Data.SqlClient.SqlException' произошел в System.Data.dll Дополнительная информация: Неправильный синтаксис рядом с '='.
вот мой код:
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Server = HP-PC\\SQLExpress; Database = CProject; Trusted_Connection = True";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connectionString;
conn.Open();
string sql = "delete from [Login] where UserName = " + comboBox1.SelectedText.ToString();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
int rowInserted = cmd.ExecuteNonQuery();
label7.Text = rowInserted.ToString();
conn.Close();
}
private void AddDeleteUsers_Load(object sender, EventArgs e)
{
string connectionstring = "Server=HP-PC\\SQLExpress;Database=CProject;Trusted_Connection=True;";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = connectionstring;
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select UserName from Login";
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
comboBox1.Items.Add(reader["UserName"].ToString());
reader.Close();
conn.Close();
}
Вы также открыты для атак внедрения SQL, так что ожидать волну людей, сообщающую, что. У вас также есть SQL (в переменной, называемой 'sql'), которая запускается, берет ее, запускает ее в базе данных * самостоятельно *, она работает? Значение 'comboBox1.SelectedText.ToString()' - это что? – Arran
Какова была стоимость имени, которое вы указали? –
При сравнении строки она должна быть окружена кавычками. Альтернативно посмотрите на предоставление параметров вашей команде SQL вместо – CR41G14