Как повторить таблицу в sqland удалить строку при совпадении
у меня есть целое число, сохраненное при загрузке формы, при нажатии кнопки я хочу найти таблицу в SQL и посмотреть, есть ли в ней это целое число, мне нужно удалить всю строку, это код :
private void button3_Click(object sender, EventArgs e) { try { using (var cmd106 = new SqlCommand("select * from [dbo].[incidentNoReserve]", cnn)) { cnn.Open(); SqlDataReader reader = cmd106.ExecuteReader(); while (reader.Read()) { int commonNo = Convert.ToInt16(reader["incidentNoReserveId"]); //Every new row will create a new dictionary that holds the columns if (Convert.ToInt16(commonNo) == newLastIncidentNo) { newLastIncidentNo = (Convert.ToInt16(commonNo)); using (SqlCommand command = new SqlCommand("Delete from[dbo].[incidentNoReserve] where incidentNoReserveId = @newLastIncidentNo", cnn)) { cnn.Open(); command.Parameters.AddWithValue("@newLastIncidentNo", newLastIncidentNo); command.ExecuteNonQuery(); cnn.Close(); } } } reader.Close(); cnn.Close(); } } catch (Exception ex) { //If an exception occurs, write it to the console Console.WriteLine(ex.ToString()); } finally { cnn.Close(); } this.Close(); }
Что я уже пробовал:
я использовал этот код его прекрасно, пока он не достигнет команды delete, он останавливается на cnn. open () и выскакивает за пределы области действия, не знаю, в чем проблема.
FranzBe
в блоке, который вы разместили, есть два cnn.Open() один за другим.
наружный блок using должно быть ", используя соединение" внутреннее через блок не может быть "команда".
Есть пустые без вести после "удалить из"
ramy nemer
это сработало, я стер внутренний cnn.Откройте и закройте, но вы имеете в виду добавление во внешний блок соединения перед использованием (var cmd106 = new SqlCommand("select * from [dbo].[incidentNoReserve]", cnn))??
FranzBe
для меня это "нормальный" способ его использования. связь - это ваш главный объект. так что это на первом месте.
using (var connection = new SqlConnection(ConnectionString))
{
соединение.Открыть();
использование (VAR command = ... )
{
}
}
это предполагает, что вы открываете и закрываете соединение для каждой команды.