2012-02-23 6 views
0

このようなSQLサーバーへのDB MSアクセスからイムコピーデータに...c# - どのようにmsアクセスdbを通過し、テーブルのリストを取得する?

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つのテーブル名のためにそれをしない...どのように私は、ループ内でこれを入れて、各テーブル名を取得するのですかこの関数を呼び出して各テーブルのデータをコピーしますか?

答えて

1

following articleでは、スキーマを照会して使用可能なテーブルのリストを取得する方法を示しています。

0

クエリの下に実行しますが、管理priviledgeを持っている必要がありますすることができます。

SELECT名 MSysObjects左([名前]、1)<> "〜" AND左([名前]、4)<> "のMSys" AND型と1,4(IN 、6) 注文番号

関連する問題