我有一个脚本可以将数据从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
答案 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