2014-07-18 24 views
-1

MYSQL數據庫(ODBC)這是我目前具有代碼:無法刪除行數據網格視圖和無法插入數據從文本框VB.Net

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」。

回答

0

DataGridView刪除行不刪除約束DataTable底層DataRow所以它可以在不影響數據庫。

當您檢索數據時,將DataTable綁定到BindingSource並將其綁定到網格。要刪除所選記錄,請致電RemoveCurrentBindingSource),刪除底層DataRow,這固有地從網格中刪除相應的行。當您在數據適配器上調用Update時,RowStateDeleted的行將從數據庫中刪除相應的記錄。

+0

感謝@jmcilhinneey 錯誤代碼時設置的BindingSource: <'stocktaking'..'tblinput1'> 無法獲取名爲「'stocktaking'..'tblinput1'」 –

+0

然後你做的數據庫對象列信息錯誤。由於我看不到你做了什麼,我只能猜測你做錯了什麼。如果這就是你要使用的所有東西,只要首先創建一個'DataTable'。你爲一個'String'創建一個數組嗎?爲什麼要爲一個DataTable創建一個'DataSet'呢? – jmcilhinney