如何通过ms访问数据库并获取表列表

本文关键字:获取 列表 数据库 何通过 ms 访问 | 更新日期: 2023-09-27 18:25:36

我像这样将数据从ms访问数据库复制到sql服务器。。。

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();

但这只适用于一个表名。。。如何将其放入循环中,获取每个表的名称,并调用此函数为每个表复制数据?

如何通过ms访问数据库并获取表列表

这里有一些参考资料。注意:我已经测试过了。你可以关注并尝试。

获取Access数据库中的表列表-ADO.NET教程

您可以看看下面的文章,它说明了如何通过查询模式来检索可用表的列表。

您可以运行以下查询,但需要具有管理特权。

SELECT名称FROM系统对象其中左([Name],1)<>"~"以及左([Name],4)<>"MSys"以及输入型(1,4,6)按名称订购