如何在填充所有文本框后添加新行,而不是替换gridview中的旧行?

时间:2013-02-17 06:41:18

标签: vb.net gridview datagrid datagridview

我在vb.net上写过程序。在我的页面中,我有3个文本框。在Txt_CardBarcode_TextChanged中,我写了这段代码:

 Try
    Dim stream_CardBarcode As System.IO.MemoryStream = New System.IO.MemoryStream
    Dim cls As New Cls_Barcode
    Dim pic_CardBarcode As System.Drawing.Image = Nothing
    cls.btnEncode(pic_CardBarcode, Txt_CardBarcode.Text.Trim)
    pic_CardBarcode.Save(stream_CardBarcode, System.Drawing.Imaging.ImageFormat.Png)
    Dim f_cardBarcode As IO.FileStream = _
        New IO.FileStream("C:\fafa.png", IO.FileMode.Create, IO.FileAccess.ReadWrite)
    Dim b_cardBarcode As Byte() = stream_CardBarcode.ToArray
    f_cardBarcode.Write(b_cardBarcode, 0, b_cardBarcode.Length)
    f_cardBarcode.Close()
    Dim ds As DS_Test
    ds = New DS_Test
    Dim Val_LabelBarcode() = {stream_CardBarcode.ToArray, Txt_ICCID.Text.Trim}
    ds.Tables(2).Rows.Add(Val_LabelBarcode)
    crp_CardBarcode.SetDataSource(ds.Tables(2))
    Dim frm_CrpCardBarcode As New Frm_RepCardBarcode
    frm_CrpCardBarcode.CrystalReportViewer1.ReportSource = crp_CardBarcode
    GVSimInfo.DataSource = ds.Tables(2)
                ds.Tables(2).Rows.Add(1)
                GVSimInfo.Rows(GVSimInfo.Rows.Count - 1).Cells(0).Value = True
                ds.Tables(2).Rows(0).Item(0) = True
                ds.Tables(2).Rows(0).Item(1) = ""
                ds.Tables(2).Rows(0).Item(2) = Txt_ICCID.Text
                ds.Tables(2).Rows(0).Item(3) = ""
                ds.Tables(2).Rows(0).Item(4) = ""

现在,在运行时,在填充3textbox之后,新行添加到gridview,但是当用户想要填充文本框时,网格视图中的新行替换旧行!!! 如何设置新行添加到网格视图,而不是替换旧行?

在我的数据集中,我放了3个表。 tables(2)有2列保存带有字节数组数据类型的图像条形码,但在我的gridview中,我有5列。 在运行时给我错误对话框,它是来自它的图像: enter image description here

1 个答案:

答案 0 :(得分:2)

如果您的DGV未绑定任何数据来源:

            GVSimInfo.Rows.Add(1);

如果您的DGV绑定到某些数据源,则:

           ds.Tables(2).Rows.Add(1)

在填写完最后一个文本框并添加新行后添加此代码。

设置您可以使用的值:

ds.Tables(2).Rows(0).Item("Column_number") = "your text"


 Try
    Dim stream_CardBarcode As System.IO.MemoryStream = New System.IO.MemoryStream
    Dim cls As New Cls_Barcode
    Dim pic_CardBarcode As System.Drawing.Image = Nothing
    cls.btnEncode(pic_CardBarcode, Txt_CardBarcode.Text.Trim)
    pic_CardBarcode.Save(stream_CardBarcode, System.Drawing.Imaging.ImageFormat.Png)
    Dim f_cardBarcode As IO.FileStream = _
        New IO.FileStream("C:\fafa.png", IO.FileMode.Create, IO.FileAccess.ReadWrite)
    Dim b_cardBarcode As Byte() = stream_CardBarcode.ToArray
    f_cardBarcode.Write(b_cardBarcode, 0, b_cardBarcode.Length)
    f_cardBarcode.Close()
    Dim ds As DS_Test
    ds = New DS_Test
    Dim Val_LabelBarcode() = {stream_CardBarcode.ToArray, Txt_ICCID.Text.Trim}
    ds.Tables(2).Rows.Add(Val_LabelBarcode)
    crp_CardBarcode.SetDataSource(ds.Tables(2))
    Dim frm_CrpCardBarcode As New Frm_RepCardBarcode
    frm_CrpCardBarcode.CrystalReportViewer1.ReportSource = crp_CardBarcode
                ds.Tables(2).Rows.Add(1)
                GVSimInfo.Rows(GVSimInfo.Rows.Count - 1).Cells(0).Value = True
                ds.Tables(2).Rows(0).Item(0) = True
                ds.Tables(2).Rows(0).Item(1) = ""
                ds.Tables(2).Rows(0).Item(2) = Txt_ICCID.Text
                ds.Tables(2).Rows(0).Item(3) = ""
                ds.Tables(2).Rows(0).Item(4) = ""
                GVSimInfo.DataSource = ds.Tables(2)  <-------
相关问题