OdbcConnection.GetSchema('淭ABLES'。); 不工作
技术问答
488 人阅读
|
0 人回复
|
2023-09-11
|
我猜不是所有的SQL都是平等创建的。我将深入研究c#中的DSN和ODBC驱动程序,并进行一些尝试。我试图获取由我所知的DSN使用Transoft
3 O1 k0 j3 u R6 s/ e3 |) qODBC驱动程序定义的数据库中的所有表。我可以连接到它并使用代码获取表:
- d3 X) r$ _% e4 N public void ConnectToData(String dsn)
; C' _( J9 y/ O( r1 i {
, d+ y6 f L& y" D System.Data.Odbc.OdbcConnection conn =
s- h4 T& C G: U8 k/ o' L4 y6 x new System.Data.Odbc.OdbcConnection();
" C, W D9 m, ? //conn.ConnectionString = "FIL=MS Access;DSN=" + dsn;& F8 H4 k0 b) W1 d) M
conn.ConnectionString = "DSN=" + dsn; //dsn equals "Company_Shared"
$ D7 H6 V/ E: M5 [& C6 N try7 O* @& Q" q V: m, K m N
{8 L. R' I; r/ n# \% b
conn.Open();$ w. f9 q( V% X# k5 L+ x
MessageBox.Show("Connected!");
) A1 V% X/ x% [ lstBoxLogs.Items.Add("Connected"); 6 T, ^+ n0 i5 ?" r8 t' a: E
DataTable tableschema = conn.GetSchema("TABLES");1 k! _3 Y1 H: h) D2 R$ F! L
DataSet set = tableschema.DataSet; ( }% S+ X4 J! x, o; w
// first column name* h& N4 d6 }; ` D* N
for (int i = 0; i 它连接正常,并报告表,但不报告我在数据库中查找的表,返回的内容如下:% L. J3 h8 k% {" q! [& j' t
TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS
. |- _% [7 q3 L+ M- E' m我不确定如何从此信息中获取实际的表名,因此我只能转储每个表中的所有数据(这是我要做的全部)。这是因为我必须阅读transoft数据库使用哪种SQL,它会使conn.GetSchema("TABLES");调用无用吗?
" P( ^% L; S- e3 n # k5 G3 ?. u# e% L5 }
解决方案: |
|
|
|
|
|