不好意思,Visual Basic 2008的数据操作方式还是搞的不太懂。现在居然写入数据还是弄不出来。以下是我查询数据填充到DataGridview代码。
Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim objCon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\vb 2008\paiban\paiban.mdb;")
Dim objComm As New OleDbCommand()
Dim Fdate As Date, Ldate As Date
Fdate = DateSerial(ComboBox1.Text, ComboBox2.Text, 1) '"2011-05-01"
Ldate = DateSerial(ComboBox1.Text, (ComboBox2.Text + 1), 0) '"2011-05-31"
objComm.CommandText = "SELECT * FROM 排班 where 日期 BetWeEn #" & Fdate & "# AND " & "#" & Ldate & "#" ' 这是一个QUERY STRING 来选取资料的
objComm.Connection = objCon
Dim adapter As New OleDbDataAdapter(objComm) '选取资料后可以用OleDbDataAdapter 把资料存到DATATABLE 里
Dim tbl As New DataTable ' 用来存资料, 等一会可以显示到DATAGRIDVIEW中
Try
objCon.Open() ' 开启 ACCESS CONNECTION
adapter.Fill(tbl) ' 把资料存到DATATABLE 里
DataGridView1.DataSource = tbl '之后 ASSIGN DATAGRIDVIEW 的DATA SOURCE E.G. 用刚刚取来的DATA TABLE
Catch ex As Exception
MsgBox(ex.Message) '有问题ERROR 时 POP UP ERROR MESSAGE BOX
Finally
adapter = Nothing '清理 data adapter object
objComm = Nothing '清理 command object
objCon.Close() '关掉连线
objCon = Nothing '清理 connection object
End Try
End Sub
我希望以类似的方式,将在Datagridview输入的数据(只是按原有记录修改,无需添加、删除记录),一次性更新到Access表。捣鼓2天没办法弄出来。望专家帮我写一下代码,以抛砖引玉。谢谢
你好:)
使用OleDbDataAdapter+OleDbCommandBuilder可以轻松完成任务。具体参考提示:
1)定义以下是整个窗体中的全局变量:
Dim adapter As New OleDbDataAdapter()
Dim dt As New DataTable()
2)在Button2_Click事件中,自动生成Insert,Delete和Update方法:
adapter.SelectCommand=new OleDbCommand("你的Select拼接语句",new OleDbConnection(你的字符串连接))
Dim builder As New OleDbCommandBuilder(adapter)
adapter.Fill(dt)
DataGridView1.DataSource = dt
3)另外一个Update作用的Button,当在DataGridView做了任意修改的时候:
adapter.Update()
dt = New DataTable()
adapter.Fill(dt)
DataGridView1.DataSource = dt '重新绑定
--
谢谢!测试了一下。只有一个问题。就是
adapter.Update()
这句出错了。提示:没有可访问的“update”接受此数目的参数……
哦,我改成MYadapter.Update(MYdt)。搞定了。太感谢了