将行添加到datagrid视图

时间:2015-05-07 08:03:05

标签: c# datagridview

我有datagridview包含数据库中的数据。

dgvSuratPemesanan.DataSource = detailSuratPemesananM.DisplayDetailSuratPemesanan(noSurPem2);

enter image description here

现在,我想添加新行。我试过这个:

dRow = dTable.NewRow();
                    dRow["ID"] = idProduk;
                    dRow["ID PRODUK"] = idProduk;
                    dRow["NAMA PRODUK"] = tbNamaProduk.Text.Trim();
                    dRow["QUANTITY"] = tbQuantity.Text.Trim();
                    dRow["SATUAN"] = unit;
                    dRow["HARGA"] = hargaHna;
                    dRow["SUBTOTAL"] = subTotal2;
                    dgvSuratPemesanan.Rows.Add(dRow);

但是,数据源中的行将消失,并替换为新行。

如何在不从数据源替换行的情况下添加新行?

我一整天都在谷歌搜索,但找不到答案。 提前thx!

2 个答案:

答案 0 :(得分:0)

如果DataGridView是绑定到某些数据源的数据,则无法添加新的行/列。您必须使用所需的列创建新数据集(DataTable或其他),然后将DataGridView重新绑定到该数据集。 在您的情况下,您已经设置了datasource

dgvSuratPemesanan.DataSource = detailSuratPemesananM.DisplayDetailSuratPemesanan(noSurPem2);

我希望这会有所帮助。

<强>更新

  DataTable dTemp = detailSuratPemesananM.DisplayDetailSuratPemesanan(noSurPem2); 
dtTemp.rows.add(1);
integer introw=dtTemp.rows.count-1;
    dtTemp.rows(intcount).item() = dTemp.NewRow(); 
    dtTemp.rows(intcount).item("ID") = noSurPem2; 
    dtTemp.rows(intcount).item("ID PRODUK") = idProduk; 
    dtTemp.rows(intcount).item("NAMA PRODUK") = tbNamaProduk.Text.Trim(); 
    dtTemp.rows(intcount).item("QUANTITY") = tbQuantity.Text.Trim(); 
    dtTemp.rows(intcount).item("SATUAN") = unit; 
    dtTemp.rows(intcount).item("HARGA") = hargaHna;
    dtTemp.rows(intcount).item("SUBTOTAL") = subTotal2;
    dgvSuratPemesanan.DataSource = dtTemp; 

答案 1 :(得分:0)

方法1

首先,你需要从指定的数据源获取表格。

var noSurPem2 = (DataTable)dgvSuratPemesanan.DataSource;

然后在数据表中添加新行

var dRow = noSurPem2.NewRow();
                    dRow["ID"] = idProduk;
                    dRow["ID PRODUK"] = idProduk;
                    dRow["NAMA PRODUK"] = tbNamaProduk.Text.Trim();
                    dRow["QUANTITY"] = tbQuantity.Text.Trim();
                    dRow["SATUAN"] = unit;
                    dRow["HARGA"] = hargaHna;
                    dRow["SUBTOTAL"] = subTotal2;
                    noSurPem2.Rows.Add(dRow);

创建新行后将数据源分配回gridview

dgvSuratPemesanan.DataSource = noSurPem2;

方法2

使用克隆技术

DataGridViewRow row = (DataGridViewRow)dgvSuratPemesanan.Rows[0].Clone();
                    row.Cells["ID"] = idProduk;
                    row.Cells["ID PRODUK"] = idProduk;
                    row.Cells["NAMA PRODUK"] = tbNamaProduk.Text.Trim();
                    row.Cells["QUANTITY"] = tbQuantity.Text.Trim();
                    row.Cells["SATUAN"] = unit;
                    row.Cells["HARGA"] = hargaHna;
                    row.Cells["SUBTOTAL"] = subTotal2;
                    dgvSuratPemesanan.Rows.Add(row);