以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  连接EXCEL外部数据源更新问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=23092)

--  作者:RandyBoy
--  发布时间:2012/9/1 19:40:00
--  连接EXCEL外部数据源更新问题
Dim conn2 As New data.Oledb.OleDbConnection(Connections("xls").ConnectionString)
conn2.open()
Dim da As New data.Oledb.OleDbDataAdapter("Select * From [Page1$] Where id < 20", conn2)
Dim ds As Data.DataSet = New Data.DataSet()
ds.datasetname="custdataset"
da.Fill(ds, "MyTable")
Dim tbl As data.DataTabletbl = ds.Tables("MyTable")
Tables(e.Form.Controls("Table1").Table.Name).DataSource = tbl
Tables(e.Form.Controls("Table1").Table.Name).AllowEdit = True
\' Generate the UpdateCommand and add the parameters for the command.
da.UpdateCommand = New Data.Oledb.OleDbCommand( _
"UPDATE [Page1$] SET empno = ? WHERE [_Identify] = ?", conn2)
da.UpdateCommand.Parameters.Add("@empno", data.oledb.OleDbType.VarChar,255).SourceColumn = "empno"
da.UpdateCommand.Parameters.Add("@_Identify", Data.Oledb.OleDbType.VarChar,255, "_Identify")

\' Update the first two records.
ds.Tables(0).Rows(1)("empno") = "A1330093B"
ds.Tables(0).Rows(2)("empno") = "A1330094"
ds.Tables(0).Rows(3)("empno") = "A1330096"
ds.Tables(0).Rows(4)("empno") = "A1330096"
ds.Tables(0).Rows(5)("empno") = "A1330097A"
ds.Tables(0).Rows(6)("empno") = "A1330098A"
Tables(e.Form.Controls("Table1").Table.Name).Rows(7)("empno")="A1330099A"

\' Apply the dataset changes to the actual data source (the workbook).
da.Update(ds, e.Form.Controls("Table1").Table.Name)
conn2.Close()
MessageBox.Show("ok")
狐爸,帮我分析一 下,为什么以上的代码不会更新到指定的表中,UpdateCommand已指定了,那里出错了呀~谢谢

--  作者:狐狸爸爸
--  发布时间:2012/9/3 8:03:00
--  
不要直接处理excel文件,直接处理数据库,然后生成excel文件。