从datagridview更新行到数据库

时间:2014-04-23 17:24:14

标签: vb.net

我有一个脚本可以将数据从datagridview更新到数据库。 我使用按钮插入ToolStripButton但它不起作用。

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    conn = New SqlConnection("")
    conn.Open()
    Dim query As [String] = "SELECT * FROM dtaTraLoiChoVanBan"
    da = New SqlDataAdapter(query, conn)
    Dim cb As New SqlCommandBuilder(da)
    dt = New DataTable()
    da.Fill(dt)
    C1FlexGrid1.DataSource = dt
    conn.Close()
End Sub

Private Sub ToolStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles ToolStrip1.ItemClicked
    Select Case e.ClickedItem.Name
        Case "ToolStripButton1" '---> button insert
            da.Update(dt)
    End Select
End Sub

2 个答案:

答案 0 :(得分:0)

我认为您的代码每次都会重新加载网格并擦除用户添加的任何更改。通过检查Page.IsPostBack(),尝试仅在第一次运行网格绑定。您也从未使用CommandBuilder生成INSERT语句。

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    conn = New SqlConnection("")  'blank connection string won't really work
    conn.Open()
    Dim query As [String] = "SELECT * FROM dtaTraLoiChoVanBan"
    da = New SqlDataAdapter(query, conn)
    Dim cb As New SqlCommandBuilder(da)
    cb.GetInsertCommand()
    dt = New DataTable()
    da.Fill(dt)
    conn.Close()
    If Not Page.IsPostBack() Then
        C1FlexGrid1.DataSource = dt
    End If
End Sub

答案 1 :(得分:0)

我有同样的问题。我只是添加验证来解决它。

Private Sub ToolStripButton5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton5.Click
    Me.Validate()
    DataGridView1.EndEdit()
    da.Update(dt)
    MsgBox("Data Updated!!")
    Me.BindGrid()
End Sub
相关问题