Я работаю над WPF приложением, в нём есть DataGrid и он связан с базой данных. У меня есть методы для добавления и удаления данных из Базы и DataGrid.
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand("INSERT INTO Student([FirstName], [LastName], [Address], [IndexNumber], [IdStudies]) " +
"values(@fName,@lName,@address,@index,@study)", connection))
{
command.Parameters.AddWithValue("@fName", student.FirstName);
command.Parameters.AddWithValue("@lName", student.LastName);
command.Parameters.AddWithValue("@address", student.Address);
command.Parameters.AddWithValue("@index", student.IndexNumber);
command.Parameters.AddWithValue("@study", student.IdStudies);
command.ExecuteNonQuery();
Console.WriteLine("Should be added");
}
connection.Close();
}
studentsList.Add(student);
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand("DELETE FROM Student
WHERE IdStudent=@id", connection))
{
command.Parameters.AddWithValue("@id", student.IdStudent);
int affectedRows = command.ExecuteNonQuery();
Console.Write(affectedRows);
}
connection.Close();
}
Но этот не работает:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand($"Update Student set " +
$"FirstName={student.FirstName}, LastName={student.LastName}, " +
$"IndexNumber={student.IndexNumber}, Address={student.Address}, IdStudies={student.IdStudies} WHERE IdStudent={student.IdStudent}"))
{
int rows = command.ExecuteNonQuery();
Console.WriteLine(rows);
}
connection.Close();
}
Первые два метода работают, а метод для обновления выдаёт ошибку:
System.InvalidOperationException: 'ExecuteNonQuery: Свойство Connection не инициализировано.'
connectionString у меня глобальная переменная.
Вы в первых 2 примерах в конструктор команды передаете подключение, а в третьем примере не передаете - потому у третьей команды проблема с подключением.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть форма ( ScreenSplashcs ) которая показывает при запуске текст и проверяет некое bool значение
Дана MySQL БД для хранения анкет и результатов их заполнения