Таблица создается динамически и DataGridView

В моей форме Windows я должен создать таблицу (во время выполнения), указанную именем пользователя (в текстовом поле), а затем использовать эту таблицу в качестве источника данных DataGridView. Наконец, заполненную таблицу необходимо вставить в базу данных. Я пытался решить эту проблему двумя способами:

  1. Я создал DataTable, указал его столбцы и т. д., но не смог вставить DataTable в базу данных, даже используя SqlDataAdapter.Update() - возможно, я неправильно использовал DataAdapter. Я работаю с C# в течение 1 недели, и я не совсем понимаю идею DataSets, TableAdapters и т. д. Поэтому я решил использовать команды SQL.

  2. Используя ExecuteNonQuery(), я создал таблицу в своей базе данных, затем понял, что мне нужно использовать волшебный SqlDataAdapter, и я сдался.

Я хочу управлять содержимым DataGridView таким же образом, как и в случае DataTable, добавленного в DataSet с помощью мастера настройки.

Я знаю, что я могу пропустить DataGridView, создать список текстовых полей, кнопку, расширяющую этот список, и функцию, вставляющую все поля в мою таблицу после кнопки подтверждения, но мой руководитель ожидает DataGridView.

Я не могу вставить код сюда, потому что я оставил только копию исходного кода на компьютере компании. Если надо будет завтра вставлю сюда свой код.


person Maciej Nowicki    schedule 03.09.2012    source источник


Ответы (1)


попробуйте использовать метод RowValidating или CellValidating из DataGridView

  private void dataGridViewEnterTab1_RowValidating(object sender, DataGridViewCellCancelEventArgs e)
    {
        if (dataGridViewEnterTab1.IsCurrentRowDirty) // Trigger when the row is dirty or has changed
        {
            string userName = dataGridViewEnterTab1["UserNameCol", e.RowIndex].EditedFormattedValue.ToString();

            //...Your SqlDataAdapter or codes
        }
    }

Я надеюсь, что это поможет этой идее. :)

person spajce    schedule 05.10.2012