我有datagridview包含数据库中的数据。
dgvSuratPemesanan.DataSource = detailSuratPemesananM.DisplayDetailSuratPemesanan(noSurPem2);
现在,我想添加新行。我试过这个:
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!
答案 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);