У меня возникли проблемы с подключением к моему SQL-серверу в моем приложении C#. У меня есть код, который может вставлять или обновлять таблицу моей базы данных. Если я обновляю таблицу, все идет правильно, но если я ее вставляю, я получаю ошибку.
Вот код:
int ID;
conn = new SqlConnection(@"Data Source = SERVER\SQLEXPRESS; Initial Catalog = SQLFiat; User ID = sa; Password = secret");
conn.Open();
if (cbCarros.SelectedIndex >= 0)
{
ID = cbCarros.SelectedIndex + 1;
cmd = new SqlCommand("UPDATE Carros SET ID_Carro=@ID_Carro,Nome=@Nome,Modelo=@Modelo,Combustivel=@Combustivel,Cambio=@Cambio,Portas=@Portas WHERE ID_Carro=@ID_Carro", conn);
cmd.Parameters.AddWithValue("@ID_Carro", ID);
cmd.Parameters.AddWithValue("@Nome", tbNome.Text);
cmd.Parameters.AddWithValue("@Modelo", tbModelo.Text);
cmd.Parameters.AddWithValue("@Combustivel", cbCombustivel.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@Cambio", cbCambio.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@Portas", Int32.Parse(tbPortas.Text));
cmd.ExecuteNonQuery();
cmd.Dispose();
cmd = new SqlCommand("UPDATE Rel_Carro_Apertadeira SET ID_Carro=@ID_Carro,ID_Aper=@ID_Aper WHERE ID_Carro=@ID_Carro", conn);
cmd.Parameters.AddWithValue("@ID_Carro", ID);
int ID_Aper = cbApertadeiras.SelectedIndex + 1;
cmd.Parameters.AddWithValue("@ID_Aper", ID_Aper);
cmd.ExecuteNonQuery();
}
else
{
ID = retornaMaiorID() + 1;
cmd = new SqlCommand("INSERT INTO Carros (ID_Carro,Nome,Modelo,Combustivel,Cambio,Portas) Values (@ID_Carro,@Nome,@Modelo,@Combustivel,@Cambio,@Portas)", conn);
cmd.Parameters.AddWithValue("@ID_Carro", ID);
cmd.Parameters.AddWithValue("@Nome", tbNome.Text);
cmd.Parameters.AddWithValue("@Modelo", tbModelo.Text);
cmd.Parameters.AddWithValue("@Combustivel", cbCombustivel.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@Cambio", cbCambio.SelectedItem.ToString());
cmd.Parameters.AddWithValue("@Portas", Int32.Parse(tbPortas.Text));
cmd.ExecuteNonQuery();
cmd.Dispose();
cmd = new SqlCommand("INSERT INTO Rel_Carro_Apertadeira (ID_Carro,ID_Aper) Values (@ID_Carro,@ID_Aper)", conn);
cmd.Parameters.AddWithValue("@ID_Carro", ID);
int ID_Aper = cbApertadeiras.SelectedIndex + 1;
cmd.Parameters.AddWithValue("@ID_Aper", ID_Aper);
cmd.ExecuteNonQuery();
}
Ошибка:
Произошло необработанное исключение типа «System.InvalidOperationException» в System.Data.dll. Для выполнения nonquery требуется открытое и доступное соединение. текущее состояние соединения закрыто
заранее спасибо