【发布时间】:2014-10-24 19:42:31
【问题描述】:
我正在使用Read Access File into a DataSet 的第一个答案从 Access 文件中准备数据集。
这里是解决方案的代码sn-p:
Using cn = New OleDbConnection(connectionstring)
cn.Open()
Dim ds As DataSet = new DataSet()
Dim Schema As DataTable = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
For i As Integer = 0 To Schema.Rows.Count - 1
Dim dt As DataTable = New DataTable(Schema.Rows(i)!TABLE_NAME.ToString())
Using adapter = New OleDbDataAdapter("SELECT * FROM " + Schema.Rows(i)!TABLE_NAME.ToString(), cn)
adapter.Fill(dt)
End Using
ds.Tables.Add(dt)
Next i
End Using
当“i”计数器为 62 时,未处理 OleDbException 的“FROM 子句中的语法错误”。
当我在 QuickWatch 中查看“ds.Tables.List”时,ds.Tables(61) 的表名为“xxxTable”。
同时,在 Microsoft Access 中,表 62 名称为“xxxTable(abc)”
换句话说,“SELECT * FROM” + Schema.Rows(i)!TABLE_NAME.ToString() 的字符串表达式 什么时候 我 = 61; "SELECT * FROM xxxTable"
当 i = 62; "SELECT * FROM xxxTable(子系统 0)"
如何处理带有 ( ) 的表名?
谢谢
【问题讨论】: