私は、すべてのSQLが同じように作成されているわけではないと推測しています。私はC#でDSNやODBCドライバの世界に飛び込んでいます。ちょっとしたことがあります。私はそれがTransoft ODBCドライバを使用していることを知っているDSNによって定義されているデータベースのすべてのテーブルを取得しようとしています。私はそれに接続して、コードを使用して表を取り戻すことができます。OdbcConnection.GetSchema( "TABLES");動作しません
public void ConnectToData(String dsn)
{
System.Data.Odbc.OdbcConnection conn =
new System.Data.Odbc.OdbcConnection();
//conn.ConnectionString = "FIL=MS Access;DSN=" + dsn;
conn.ConnectionString = "DSN=" + dsn; //dsn equals "Company_Shared"
try
{
conn.Open();
MessageBox.Show("Connected!");
lstBoxLogs.Items.Add("Connected");
DataTable tableschema = conn.GetSchema("TABLES");
DataSet set = tableschema.DataSet;
// first column name
for (int i = 0; i < tableschema.Columns.Count; i++)
{
lstBoxLogs.Items.Add(tableschema.Columns[i].ColumnName);
}
lstBoxLogs.Refresh();
MessageBox.Show(tableschema.Columns.Count + " tables found");
}
catch (Exception ex)
{
MessageBox.Show("Failed to connect to data source: " + ex.GetBaseException().Message);
}
finally
{
conn.Close();
}
}
それは罰金接続して、レポートのテーブルではなく、私は戻って来るもの、データベース内を探しています私が知っているテーブルは以下の通りです:
TABLE_QUALIFIER
TABLE_OWNER
TABLE_NAME
TABLE_TYPE
REMARKS
私は私ができるJこの情報から実際のテーブル名を取得する方法がわからないですすべてのデータをすべてのテーブルにダンプしないでください(これは私がやりたいことです)。これは、私がどのような種類のSQLデータベースを使用しているのかを読み取る必要があり、conn.GetSchema("TABLES");
呼び出しが役に立たなくなる原因ですか?
あなたは男の感謝です!今私は理想的には、foreachではselect *行["TABLE_NAME"]を実行し、各テーブルからデータを取得してディスクに書き出すことができます。ありがとう! – Codejoy