Sagar Khairnar 55 Ответов: 3

как я могу извлечь данные из одного datagridview в другой datagridview в c#


Привет,

Я работаю над приложением для windows.

Я хочу получить данные из одного datagridview в другой datagridview

Я принес данные из базы данных в datagridview1.
Я хочу, чтобы при двойном щелчке или нажатии клавиши enter на конкретной ячейке datagridview1 она отображала значения во втором datagridview, то есть datagridview2.

Примечание: Я динамически создал первый datagridview, то есть datagridview1
и отобразите значение в этой базе данных.

Я также хочу знать, как создать событие динамически.

спасибо

T.Saravanann

что вы хотите показать во второй сетке,все значения столбцов выбранной строки или конкретный столбец выбранной строки.

Dalek Dave

Отредактировано для удобства чтения, орфографии и грамматики.

3 Ответов

Рейтинг:
2

Salman622

при создании datagridview1 назначьте ему событие типа

datagridview1.CellDoubleClick+=new DataGridViewCellEventHandler(datagridview1_CellDoubleClick);


создайте один метод, например :
private void datagridview1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
                string cellValue= dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
              //create datasource base on your cellvalue and assign that datasource to datagridview2

        }


Рейтинг:
1

Christian Graus

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


Рейтинг:
1

T.Saravanann

Привет Сагар55,

DataTable dtOutput=new DataTable(); // назначить в глобальном масштабе

В Вашем событии DataGridView1 CellBeginEdit напишите следующий код

//Its Working in Cell Double Click 

void dataGridView1_CellBeginEdit(object sender,DataGridViewCellCancelEventArgs e)
 {
   DataTable dtGrid1=(DataTable)DataGridView1.DataSource;  

   string sId=DataGridView1.Rows[e.RowIndex].Cells["Id"].Value.ToString();
  //Here 'Id' is Filter Column (Assume)
  DataRow[] drFilter=dtGrid1.Select("Id="'+sId+'"");
  DataTable dtData=new DataTable();
  dtData=dtGrid1.Clone();
  foreach(DataRow dr in drFilter)
    { 
     dtData.ImportRow(dr);
    }
   if(dtOutput.Columns.Count==0)
    {
     dtOutput=dtGrid1.Clone();
    } 
   dtOutput.Merge(dtData);
   DataGridView2.DataSource=dtOutput.Copy();
}


Надеюсь, этот код вам пригодится.

Овации :)


Dalek Dave

Просто вставьте кодовый блок.
Кстати, хороший звонок на этот счет.