2010-01-20 6 views
1

Следующий код пытается удалить выбранную строку из datagridview и обновить базу данных.Свойство CommandText не инициализировано

Но это не обновление базы данных ... это просто ошибка, «свойство CommandText не было инициализировано». ...есть идеи? Я предполагаю, что это потому, что это не связано в начале, но на данный момент я не знаю, и у меня болит голова.

private void deleteRow() 
{ 
    DialogResult dr = MessageBox.Show("Are you sure you want to delete this row?", "Confirmation", 
    MessageBoxButtons.YesNo, MessageBoxIcon.Question); 

    if (dr == DialogResult.Yes) 
    { 
     while (dataGridView1.SelectedRows.Count > 0) 
     dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]);     

     try 
     { 
      this.Validate(); 
      this.tradesBindingSource.EndEdit(); 
      this.tradesTableAdapter.Update(this.tradesDataSet.Trades); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("An error occurred during the update process: " + ex); 
      // Add code to handle error here. 
     } 

     this.tradesTableAdapter.Fill(this.tradesDataSet.Trades); // refresh table 
    } 
} 
+0

Коренная причина, вероятно, лежит вне этого кода, где создаются и настраиваются ваши соединения и SqlCommand. Можете ли вы опубликовать их в своем вопросе? –

+0

Я не использую никаких команд SQL ... просто набор данных и tableadapter ... – Woody

+3

Ваша команда обновления в адаптере данных не установлена. Поэтому он не знает, как обновляться. Его генерируется автоматически, но иногда дизайнер может испортить и удалить его из файла кода дизайнера. – affan

ответ

0

Я удалил свои адаптеры таблицы, наборы данных и т. Д. ... и воссоздал всю таблицу. Заполнил его новыми данными и попытался удалить строку. Он работал ... Не знаю почему, но он работает сейчас.

+1

Это работает, потому что теперь у вас есть команда, назначенная свойству UpdateCommand DataAdapter. – AMissico

+0

Да, в дизайнере DataSet нажмите на запрос FillBy и посмотрите на окно свойств. Вы должны увидеть места для запросов «Выбрать», «Обновить», «Вставить» и «Удалить». Он может автоматически заполнить их, и в течение долгого времени это прекрасно, но имейте в виду! – cjb110

Смежные вопросы