@albyaman
Студент

Свойство ConnectionString не инициализировано. Как исправить?

Как исправить это сообщение?
Все работает хорошо, до того момента, когда я хочу записать измененные данные datagrid в БД
static string stringConnect = ConfigurationManager.ConnectionStrings["OrdersConnection"].ConnectionString; 
SqlDataAdapter adapter;
DataSet dataSet;

public void ViewOrders()
        {
            string sqlCommandSelect = @"SELECT * FROM [ORDERS]";

            using (SqlConnection connection = new SqlConnection(stringConnect))
            {

                adapter = new SqlDataAdapter(sqlCommandSelect, connection);
                dataSet = new DataSet();
                adapter.Fill(dataSet, "ORDERS");

                gridForControl.ItemsSource = new DataView(dataSet.Tables["ORDERS"]);
            }
        }

        private void ButtonSave_Click(object sender, RoutedEventArgs e)
        {
            SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
            adapter.Update(dataSet.Tables["ORDERS"]); // тут ошибка
            //ViewOrders();
            MessageBox.Show("Данные успешно обновленны!");

        }
  • Вопрос задан
  • 4381 просмотр
Решения вопроса 1
@Sumor
Соединение у вас работает только в рамках using. Оно же его и закрывает.
Либо нужно создавать и долго хранить SqlConnection, скорее всего всё время работы программы.
Либо в обработчике ButtonSave_Click заново создайте SqlConnection и присвойте его свойству adapter.Connection.

Пересоздание SqlConnection в короткий промежуток времени не приводит к физическому пересозданию соединения с базой данных, так как провайдер какое-то время после закрытия ещё держит соединения на случай если они понадобятся.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы