0

私は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 つのテーブルを配置しました。テーブル(2)には、バイト配列データ型で画像バーコードを保存する2つの列がありますが、私のグリッドビューには5つの列があります。実行時にエラーダイアログが表示されます。それはそれからの画像です: ここに画像の説明を入力

4

1 に答える 1

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)  <-------
于 2013-02-17T06:51:44.087 に答える