OdbcConnection.GetSchema('淭ABLES'。); 不工作
技术问答
487 人阅读
|
0 人回复
|
2023-09-11
|
我猜不是所有的SQL都是平等创建的。我将深入研究c#中的DSN和ODBC驱动程序,并进行一些尝试。我试图获取由我所知的DSN使用Transoft+ ~' ^ y+ f W. x
ODBC驱动程序定义的数据库中的所有表。我可以连接到它并使用代码获取表:
% M. @7 ^4 l' _( R3 Y% p public void ConnectToData(String dsn)( p8 B3 S( e3 u& E$ Z/ @
{0 ?4 i$ d4 {/ L, h7 J/ [2 f
System.Data.Odbc.OdbcConnection conn =
# g+ l0 K! ^0 C( v8 E+ H# S new System.Data.Odbc.OdbcConnection();, W( ]8 @. ]4 m! n+ l3 \
//conn.ConnectionString = "FIL=MS Access;DSN=" + dsn;6 j. H. h: F Q6 n' j/ X
conn.ConnectionString = "DSN=" + dsn; //dsn equals "Company_Shared"0 [$ j& G/ A @! G+ g
try1 e E, h' W1 W5 I( h/ y
{( }- F+ |: g3 H) _! E* l. i+ a
conn.Open();/ g7 ~" E9 |2 n; U& b
MessageBox.Show("Connected!");
5 |5 Q$ @- U; {. G4 \ lstBoxLogs.Items.Add("Connected"); + i7 A7 C8 ?7 Q( F* I/ u
DataTable tableschema = conn.GetSchema("TABLES");
2 u! j, E( D2 d2 Z* u2 V) u DataSet set = tableschema.DataSet; 0 [) ]. m- j3 b4 d/ d3 r
// first column name! O2 Z% [3 [: m/ G8 ~5 T
for (int i = 0; i 它连接正常,并报告表,但不报告我在数据库中查找的表,返回的内容如下:
@9 Y5 S' O4 l- ~TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS
4 h$ I' A+ J( w' ]% s! h, q5 g我不确定如何从此信息中获取实际的表名,因此我只能转储每个表中的所有数据(这是我要做的全部)。这是因为我必须阅读transoft数据库使用哪种SQL,它会使conn.GetSchema("TABLES");调用无用吗?- H. E' q4 j. v: M: W8 C6 l
$ M- T& u( e* ?7 k& o8 C
解决方案: |
|
|
|
|
|