OdbcConnection.GetSchema('淭ABLES'。); 不工作
技术问答
433 人阅读
|
0 人回复
|
2023-09-11
|
我猜不是所有的SQL都是平等创建的。我将深入研究c#中的DSN和ODBC驱动程序,并进行一些尝试。我试图获取由我所知的DSN使用Transoft9 Y9 k& V' A/ |; D& H: i6 W: v
ODBC驱动程序定义的数据库中的所有表。我可以连接到它并使用代码获取表:) b0 |2 y2 \% i6 k! f3 a4 j
public void ConnectToData(String dsn)
5 R& [( x$ o5 Y1 {& | {& k% ^/ U3 F0 m. N6 N
System.Data.Odbc.OdbcConnection conn =
# v9 A, J" v; X( ~ new System.Data.Odbc.OdbcConnection();* M; a# f$ l, S3 V! `
//conn.ConnectionString = "FIL=MS Access;DSN=" + dsn;
O% t, B, B3 Y ?4 q5 A conn.ConnectionString = "DSN=" + dsn; //dsn equals "Company_Shared", I V& L: i4 u. ?/ x7 u0 S
try# r4 b; S0 V% {9 o. O" u
{- W4 @$ p- ~& \7 R/ z d& V
conn.Open();
2 t8 I7 v) |; ~ MessageBox.Show("Connected!");5 I' D, \1 i7 E S/ X( `
lstBoxLogs.Items.Add("Connected");
4 \& U# c+ @2 q3 d( w7 P DataTable tableschema = conn.GetSchema("TABLES"); O0 ?; x- N P n
DataSet set = tableschema.DataSet; & h+ d+ t9 E+ W3 S) D
// first column name" d3 a5 O7 a+ _
for (int i = 0; i 它连接正常,并报告表,但不报告我在数据库中查找的表,返回的内容如下:( q9 ^! F o" S3 K! A
TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS
3 Z& }$ j5 M0 o7 L3 w5 }( o我不确定如何从此信息中获取实际的表名,因此我只能转储每个表中的所有数据(这是我要做的全部)。这是因为我必须阅读transoft数据库使用哪种SQL,它会使conn.GetSchema("TABLES");调用无用吗?
/ S( Q7 u: a* O1 {" a
8 `( w i+ J2 @) X W解决方案: |
|
|
|
|
|