2010-01-03 117 views
0

这是我的代码,但它的另一种方式是,它在数据库更新时将更改提交给datagridview。如何通过使用datagridview更新数据库(vb.net)

Imports System  
Imports System.Data  
Imports System.Data.OleDb  
Imports System.Windows.Forms 

Public Class Form1  
Inherits System.Windows.Forms.Form 

    Private bindingSource1 As New BindingSource()  
    Private dataAdapter As New OleDbDataAdapter() 

    <STAThreadAttribute()> _  
    Public Shared Sub Main()  
     Application.Run(New Form1())  
    End Sub 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load  
     Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\GRN.mdb;User Id=admin;Password=;"  
     Dim selectCommand As String  
     Dim connection As New OleDbConnection(connectionString) 

     selectCommand = "select * from GRNITEMS ORDER BY GRNNO, ITEMCODE"  
     Me.dataAdapter = New OleDbDataAdapter(selectCommand, connection) 

     With DataGridView1  
      .AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells  
      .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader  
      .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader  
     End With 

     Dim commandBuilder As New OleDbCommandBuilder(Me.dataAdapter)  
     Dim table As New DataTable() 

     table.Locale = System.Globalization.CultureInfo.InvariantCulture 

     Me.dataAdapter.Fill(table)  
     Me.bindingSource1.DataSource = table 

     Dim data As New DataSet() 

     data.Locale = System.Globalization.CultureInfo.InvariantCulture 

     DataGridView1.DataSource = Me.bindingSource1  
     Me.DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.Aqua  
     Me.DataGridView1.AutoResizeColumns(_  
      DataGridViewAutoSizeColumnsMode.AllCells) 

    End Sub 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     Dim table As New DataTable() 

     Me.bindingSource1 = Me.DataGridView1.DataSource  
     table = Me.bindingSource1.DataSource 

     Me.dataAdapter.Update(table)  
    End Sub 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
     Me.Close() 
    End Sub 

End Class 
+0

请把里面的代码标记你的代码,这使得它更容易阅读。 – 2010-01-03 01:12:36

+0

-1这里有什么问题吗? – 2010-01-03 01:50:38

+0

此代码可能属于[这个问题](http://stackoverflow.com/questions/1993447/how-to-sort-data-using-datagridview-in-vb-net/)? – stakx 2013-03-23 17:21:06

回答

0

这一行:

Me.dataAdapter.Update(table) 

使用您的DataAdapter从数据库最新数据更新您的表。

这就是问题所在。我对VB.NET不够熟悉,无法为您编写代码,使用gridview中的新数据更新数据库。

+1

-1这不是一个完整的答案..你必须指定UpdateCommand。 – 2010-01-03 01:49:15

0

dataAdapter.Fill(dataSource.tableName)