向datagrid添加了新行,但值保留在第一行

时间:2014-06-02 09:21:00

标签: vb.net visual-studio-2010

当我单击一个按钮并将特定值发送到新添加的行时,我尝试制作一个简单的程序,在我的datagridview中添加新行。这是代码

http://pastebin.com/mN5QwL1Z

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles Button2.Click
    Dim baris As Integer
    baris = 0
    perintah.Connection = koneksi
    perintah.CommandType = CommandType.Text
    perintah.CommandText = "select * from film where kode_film ='" & TextBox11.Text & "'"

    dr = perintah.ExecuteReader()
    If dr.HasRows = True Then
        dr.Read()
        DataGridView1.Rows.Add()
        DataGridView1.Rows(baris).Cells(0).Value = dr("kode_film")
        DataGridView1.Rows(baris).Cells(1).Value = dr("nama_film")
        DataGridView1.Rows(baris).Cells(2).Value = dr("stok")
        dr.Close()

    End If

    dr.Close()



End Sub

问题是,每次单击该按钮时,它都会在datagridview中创建一个新行,但该值保留在第一行,而不是插入到新添加的值中。

谷歌搜索过很多次但是没有找到答案。伙计们,需要你的手。 对不起我的英语不好。

2 个答案:

答案 0 :(得分:1)

您并未在任何地方更改baris的值,因此您始终会在索引0处获取该行。Add方法返回新行的索引,因此请使用该行。更好的是,使用将单元格值作为参数的Add重载,因此您可以在一行代码中创建并填充该行。

答案 1 :(得分:0)

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles Button2.Click
Dim baris As Integer
baris = 0
perintah.Connection = koneksi
perintah.CommandType = CommandType.Text
perintah.CommandText = "select * from film where kode_film ='" & TextBox11.Text & "'"

dr = perintah.ExecuteReader()
If dr.HasRows = True Then
    dr.Read()
    DataGridView1.Rows.Add()
    DataGridView1.Rows(baris).Cells(0).Value = dr("kode_film")
    DataGridView1.Rows(baris).Cells(1).Value = dr("nama_film")
    DataGridView1.Rows(baris).Cells(2).Value = dr("stok")
    dr.Close()
    baris = baris + 1

End If

dr.Close()



End Sub

改变了baris的值,但是值仍然在第一行,它取代了我之前插入的值。