2012-02-23 81 views
0

從數據庫到這樣的SQL Server中的MS Access進出口數據複製...c# - 如何通過MS訪問數據庫和獲取表的列表?

string sSQLTable = table; 
string myExcelDataQuery = "Select * from " + sSQLTable; 
string sSqlConnectionString = connStr; 
string sClearSQL = "DELETE FROM " + sSQLTable; 
SqlConnection SqlConn = new SqlConnection(sSqlConnectionString); 
SqlCommand SqlCmd = new SqlCommand(sClearSQL, SqlConn); 
SqlConn.Open(); 
SqlCmd.ExecuteNonQuery(); 
SqlConn.Close(); 
OleDbConnection OleDbConn = new OleDbConnection(String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", fileName)); 
OleDbCommand OleDbCmd = new OleDbCommand(myExcelDataQuery, OleDbConn); 
OleDbConn.Open(); 
OleDbDataReader dr = OleDbCmd.ExecuteReader(); 
SqlBulkCopy bulkCopy = new SqlBulkCopy(sSqlConnectionString); 
bulkCopy.DestinationTableName = sSQLTable; 
while (dr.Read()) 
{ 
    bulkCopy.WriteToServer(dr); 
} 
OleDbConn.Close(); 

但這僅會爲一個表名...我如何把這個循環,讓每個表的名稱並調用此函數來複制每個表的數據?

回答

1

你可以看看它演示瞭如何通過查詢模式檢索可用表的列表following article

0

您可以運行下面的查詢,但需要有行政特權。

SELECT姓名FROM MSysObjects WHERE 左([名稱],1)<> 「〜」 AND 左([名稱],4)<> 「MSys的」 AND 類型在(1,4 ,6) ORDER BY名稱