如何从数据库检索数据到文本框

时间:2016-09-12 16:52:58

标签: sql sql-server visual-studio-2015

需要有关我的代码的帮助。我需要将我的数据(名字和姓氏)从我的数据库显示到文本框但我无法弄清楚代码。需要帮忙。日Thnx。这是错误:

  

mscorlib.dll中出现未处理的“System.ArgumentOutOfRangeException”类型异常

     

其他信息:指数超出范围。必须是非负数且小于集合的大小。

和代码:第5行的错误

Private Sub dg1_RowEnter(sender As Object, e As DataGridViewCellEventArgs) Handles dg1.RowEnter
    With cmd
        .Connection = cn
        .CommandText = "SELECT ID, LastName, FirstName FROM tblMembers WHERE ID = @ID"
        .Parameters.Add(New SqlClient.SqlParameter("@ID", SqlDbType.Int)).Value = dg1.SelectedRows(0).Cells(0).Value
    End With
    dr = cmd.ExecuteReader
    With dr
        .Read()
        txtLname.Text = .GetValue("LastName")
        txtFname.Text = .GetValue("FirstName")
    End With
    Try
        txtContactNo.Text = dg1.Item(2, e.RowIndex).Value
        txtAddress.Text = dg1.Item(3, e.RowIndex).Value
        dtpBirthday.Text = dg1.Item(4, e.RowIndex).Value
        dtpBaptism.Text = dg1.Item(5, e.RowIndex).Value
        txtMinistry.Text = dg1.Item(6, e.RowIndex).Value
        Dim ms As New MemoryStream(changePhoto(CInt(dg1.SelectedCells(0).Value)))
        PictureBox1.Image = Image.FromStream(ms)
    Catch ex As Exception

    End Try
    cn.Close()
End Sub

1 个答案:

答案 0 :(得分:0)

也许您应该使用20代替DataGridViewCellEventArgs.RowIndex

  

此事件发生在更新CurrentRow属性之前。要检索新输入的行的索引,请使用事件处理程序中的DataGridViewCellEventArgs.RowIndex属性。   来自Microsoft

dg1.SelectedRows(0)