1
我猜測並非所有的SQL都是平等創建的。我深入到c#中的DSN和ODBC驅動程序的世界,並且有一點點關注。我試圖獲取由DSN定義的數據庫中的所有表,我知道它使用的是Transoft ODBC驅動程序。我可以連接到它,並使用代碼找回表: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
我不知道如何從這些信息,以便我可以Ĵ得到實際的表名ust轉儲每個表中的所有數據(這是我想要做的)。這是因爲我必須瞭解一個transoft數據庫使用什麼樣的SQL,並且它是否使conn.GetSchema("TABLES");
調用無用?
你是男人謝謝!現在我理想的是,在那個foreach中,我只需要在行[「TABLE_NAME」]上執行select *,並從每個表中獲取數據並將其寫入磁盤。謝謝! – Codejoy 2012-01-01 21:17:16