2013-11-21 4 views
0

У меня есть DataGridView в моем проекте, который работает как моя корзина в магазине. Когда я выбираю товар в своем основном DataGridView, информация о том товаре выбирается из моей базы данных и добавляется в объект DataTable, а конец моей таблицы данных привязан к моему basketDataGridView, но в моем проекте моя корзинаDataGridView не отображает содержимое моего Таблица данных.DataGridView Не отображает привязанный к нему dataTable

Вы можете увидеть приведенный ниже код.

Примечание: мой FrooshDataGridview мой главный DataGridView и nesyeBasketDataGridview моя корзина.

Благодаря

private void FrooshDataGridView_CellClick(object sender, DataGridViewCellEventArgs e) 
    { 

     if (FrooshDataGridView.RowCount > 0) 
     { 
      if (e.RowIndex != -1 && e.ColumnIndex != -1 && 
       FrooshDataGridView.Columns[e.ColumnIndex] is DataGridViewButtonColumn) 
       if (FrooshDataGridView.CurrentCell.Value.ToString().Trim() == "Add to Basket") 
        if (DialogResult.Yes == MessageBox.Show("Are you shur that to add to basket ", "Add", MessageBoxButtons.YesNo)) 
        { 
         int a = (int)FrooshDataGridView.CurrentRow.Cells["ID"].Value; 
         //MessageBox.Show(a.ToString()); 
         string sql = "select * From tblKala where ID =" + a.ToString(); 
         da.SelectCommand.CommandText = sql; 
         conn.Open(); 
         DataTable dt = new DataTable(); 
         da.Fill(dt); 
         conn.Close(); 
         DataRow MyRow = table1.NewRow(); 
         MyRow = dt.Rows[0]; 
         table1.ImportRow(MyRow); 

        } 
      //NesyeBasketDataGridView.DataSource = null;   

      //NesyeBasketDataGridView.Show(); 
     } 
     NesyeBasketDataGridView.DataSource = table1; 
    } 

ответ

0

Заметь, что ваш table1 должен иметь такую ​​же структуру с местными dt. Если нет, строка, которую вы скопируете с dt на номер table1, заполнит столбец слева направо. Для того, чтобы скопировать структуру из таблицы dt, вы можете использовать метод Clone так:

table1 = dt.Clone(); 

Ваш код не так, потому что это не так, чтобы скопировать строку, вы можете использовать ImportRow непосредственно, как это:

table1.ImportRow(dt.Rows[0]); 
+0

Привет, ваш код действительно работает, но возникает новая проблема. когда я нажимаю новую кнопку в своих столбцах кнопки в моем основном dataGridView, чтобы добавить корзину, новая строка будет перезаписана в существующей строке в моем файле basketDataGridView, другими словами, я хочу добавить новые строки в свою корзину. Вы можете мне помочь? – user2936286

+0

@ user2936286 - ваш основной DataSource DataGridView 'table1'? –

+0

нет, у меня есть таблица в моей базе данных, что весь товар в магазине зарегистрирован в этой таблице. Я выбираю все строки в моем основном DataGridView. в моем основном dataGridView у меня есть столбцы кнопки, которые, когда пользователь нажимает на одну из них, эту строку импортируют в таблицу 'tablel1' и 'table1', привязанные к моему basketDataGridview. – user2936286

0

может быть, вы должны попробовать

table1.Rows.Add(dt.Rows[0].ItemArray); 

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

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