C#遍历表access中的所有表

   今天领到了个任务,把access中的数据导入到SqlServer。本来想着直接在access中通过数据源导出到SqlServer就可以了,也没啥麻烦的,打开access数据库就愣了愣,10多个库,估计至少1000张表,这样要搞到猴年马月啊。然后就想到了应该可以通过程序来遍历表,实现批量导入。感谢互联网前辈们的总结和分享,免去了再查文档的痛苦。程序跑起,可以休息会了。。。

/// <summary>
/// 返回Mdb数据库中所有表表名
/// </summary>
public string[] GetShemaTableName(string database_path, string database_password)
{
   OleDbConnection conn = null;
   try
   {
       //获取数据表
       conn = new OleDbConnection();
       //conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:DataBase Password=" + database_password + " Data Source=" + database_path;
       conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" + database_path;
       conn.Open();
       DataTable shemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
       int n = shemaTable.Rows.Count;
       string[] strTable = new string[n];
       int m = shemaTable.Columns.IndexOf("TABLE_NAME");
       for (int i = 0; i < n; i++)
       {
           DataRow m_DataRow = shemaTable.Rows[i];
           strTable[i] = m_DataRow.ItemArray.GetValue(m).ToString();
       }
       return strTable;
   }
   catch (OleDbException ex)
   {
       MessageBox.Show(ex.Message);
       return null;
   }
   finally
   {
       if (conn != null)
       {
           conn.Close();
           conn.Dispose();
       }
   }
}