我正在尝试将一些旧的VB6代码转换为VB.NET。旧代码使用DAO,现在我试图在ADO.NET/OleDB中复制它。我已经取得了一些进展(我认为......)但现在我无法弄清楚如何将DataTable对象添加到数据库中。
这是旧的VB6代码,td是来自DAO的TableDef对象:
If fso.FileExists(loc) Then
Set td = m_db.CreateTableDef("Ratings")
td.Connect = "Excel 8.0;HDR=Yes;IMEX=2;DATABASE=" & loc
td.SourceTableName = "Sheet1$"
m_db.TableDefs.Append td
bFileNotExists = False
Else
bFileNotExists = True
End If
据我所知,这是从Excel文件'loc'读取Sheet1,然后将其附加到DA_数据库对象m_db。这就是我到目前为止所做的,如果你看到任何错误,请纠正我,因为我刚刚开始做这类事情 -
If fso.FileExists(loc) Then
oleCon = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & loc & ";Extended Properties=""Excel 8.0;HDR=Yes;")
oleCon.Open()
oleAdapter = New OleDbDataAdapter("SELECT * FROM [Sheet1$]", oleCon)
oleAdapter.Fill(dt)
bFileNotExists = False
Else
bFileNotExists = True
End If
因此,我从同一张表中取出数据并将其放入DataTable对象(dt)中,而不是TableDef。我希望到目前为止这是正确的。现在我的问题是如何从上面复制m_db.TableDefs.Append td
行。谢谢!
答案 0 :(得分:0)
问题是,您必须使用Excel文件中的配置预加载'dt',以便TableAdapter能够运行。这是据我所知。您可以采用许多路径,包括首先创建列然后逐行加载,或者将Excel工作表作为DataTable本身加载并将其添加到DataSet中。
建议: