回答

收藏

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解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则