2016-06-11 76 views
-1

你好我的DataGridView在我的vb.net的形式,我想從MySQL表中的數據顯示,以Vb.net的DataGridView中(DGV),但問題是我何時更新或刪除Dgv中的記錄,我獲取的當前記錄是添加更多當前記錄的顯示。我寫這篇文章這樣的代碼,因爲我要上添加更功能,我知道我能做到這一點使用和MySqlDataAdapter的數據集,然後填寫該代碼的datagridview的,但我用它來增加更多的功能,現在如何更新/刪除一條記錄,但不添加我當前獲取的更多行。或加倍行的在Vb.net添加記錄中的DataGridView行

Dim SQL as String = "Select * from employee" 
Dim cmd as MySqlCommand = new MySqlCommad(SQL, connection) 
Dim reader as MysqlDataReader = cmd.executeReader() 
Dim empId, empName, empAddress as String 
with reader.Read 
    empId = reader("empId") 
    empName = reader("name") 
    empAddress = reader("address") 

Dim row() As String 
row = new String() {empId, empName, empAddress} 
DataGridView1.Rows.Add(row) 
End While 
reader.close() 
cmd.close() 

我知道問題出在Rows.Add

補充: 目前的這個功能是顯示數據,並在事件或按鈕是點擊這個小組將會再次調用。沒有增加更多的顯示。

+0

如果您加載'emplpyee'表到DataTable,你不必行添加到DGV,你可以將表綁定到它,它會自動地顯示一切。要添加新的EMP,添加一個新的DataRow – Plutonix

+0

目前,因爲我會過濾掉一些它的數據例如我不使用數據表,我的EmpAddress是從美國,我不打算在DataGrid中顯示,但我會將其傳遞給變量以備將來使用 – Max

回答

1
Dim SQL as String = "Select * from employee" 
Dim cmd as MySqlCommand = new MySqlCommad(SQL, connection) 
Dim reader as MysqlDataReader = cmd.executeReader() 
Dim empId, empName, empAddress as String 

'before adding new row in datagridview add this code 
DataGridView1.Rows.clear(); 
with reader.Read 
    empId = reader("empId") 
    empName = reader("name") 
    empAddress = reader("address") 

,這樣它會刪除該行的舊值,然後在數據庫

1

這應該做你想做的添加新的價值。您可以輕鬆地從sql server中選擇datagridview,更改數據並將更改從datagridview傳遞到sql server。

Imports System.Data.SqlClient 
Public Class Form1 
    Dim connetionString As String 
    Dim connection As SqlConnection 
    Dim adapter As SqlDataAdapter 
    Dim cmdBuilder As SqlCommandBuilder 
    Dim ds As New DataSet 
    Dim changes As DataSet 
    Dim sql As String 
    Dim i As Int32 

    Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     connetionString = "Data Source='your_server';Initial Catalog='your_database';Trusted_Connection=True;" 
     connection = New SqlConnection(connetionString) 
     sql = "Select * from Product" 
     Try 
      connection.Open() 
      adapter = New SqlDataAdapter(Sql, connection) 
      adapter.Fill(ds) 
      DataGridView1.DataSource = ds.Tables(0) 
      connection.Close() 
     Catch ex As Exception 
      MsgBox(ex.ToString) 
     End Try 
    End Sub 

    Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
     'NOTE: for this code to work, there must be a PK on the Table 
     Try 
      cmdBuilder = New SqlCommandBuilder(adapter) 
      changes = ds.GetChanges() 
      If changes IsNot Nothing Then 
       adapter.Update(changes) 
      End If 
      MsgBox("Changes Done") 
     Catch ex As Exception 
      MsgBox(ex.ToString) 
     End Try 
    End Sub 
End Class 
相關問題