【问题标题】:Can't Delete row data grid view & Can't insert data to database MYSQL(ODBC) from textbox VB.Net无法删除行数据网格视图和无法从文本框 VB.Net 将数据插入数据库 MYSQL(ODBC)
【发布时间】:2014-07-18 07:04:11
【问题描述】:

这是我目前拥有的代码:

Imports System.Data.Odbc
Imports System.Data.SqlClient
Imports System.Data
Imports System
Public Class FormInput1
    Dim sCommand As Odbc.OdbcCommand
    Dim sAdapter As Odbc.OdbcDataAdapter
    Dim sBuilder As Odbc.OdbcCommandBuilder
    Dim sDs As DataSet
    Dim sTable As DataTable
Private Sub CmdLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdLoad.Click
Dim sql As String = "SELECT * FROM TblInput1"
        OpenDB()

        sCommand = New Odbc.OdbcCommand(sql, con)
        sAdapter = New Odbc.OdbcDataAdapter(sCommand)
        sBuilder = New Odbc.OdbcCommandBuilder(sAdapter)
        sDs = New DataSet()
        sAdapter.Fill(sDs, "TblInput1")
        sTable = sDs.Tables("TblInput1")
        con.Close()
        DGVInput1.DataSource = sDs.Tables("TblInput1")
        DGVInput1.ReadOnly = True
        CmdSave.Enabled = False
        DGVInput1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
    End Sub

    Private Sub CmdAddEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdAddEdit.Click
        DGVInput1.[ReadOnly] = False
        CmdSave.Enabled = True
        CmdAddEdit.Enabled = False
        CmdDelete.Enabled = False

    End Sub

    Private Sub CmdDelete_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdDelete.Click

        If MessageBox.Show("Do you want to delete this row ?", "Delete", MessageBoxButtons.YesNo) = DialogResult.Yes Then
            DGVInput1.Rows.RemoveAt(DGVInput1.SelectedRows(0).Index)
            sAdapter.Update(sTable)

        End If
    End Sub

无法删除行 (CmdDelete)

    Private Sub CmdSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdSave.Click
        sAdapter.Update(sTable)
        DGVInput1.[ReadOnly] = True
        CmdSave.Enabled = False
        CmdAddEdit.Enabled = True
        CmdDelete.Enabled = True
    End Sub

我还有更多问题,当我单击命令按钮“保存到数据库”时,我有 TxtPeriode.TextTxtstore.textTxtPartNumber.Text 无法插入到表“TblInput1”。

【问题讨论】:

    标签: mysql vb.net odbc


    【解决方案1】:

    DataGridView 中删除一行不会删除绑定DataTable 中的底层DataRow,因此它不会影响数据库。

    当您检索数据时,将DataTable 绑定到BindingSource 并将其绑定到网格。要删除选定的记录,请在 BindingSource 上调用 RemoveCurrent,这会删除基础 DataRow,这会固有地从网格中删除相应的行。当您在数据适配器上调用Update 时,RowStateDeleted 的行将从数据库中删除相应的记录。

    【讨论】:

    • 感谢@jmcilhinneey 代码绑定源设置时出错:stocktaking..tblinput1> 无法获取名为“stocktaking..tblinput1”的数据库对象的列信息
    • 那你做错了。由于我看不到你做了什么,我只能猜测你做错了什么。如果这就是您要使用的全部内容,请首先创建一个DataTable。您是否为String 创建了一个数组?那么为什么要为一个DataTable 创建一个DataSet 呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    相关资源
    最近更新 更多