c#操作access数据库,怎么获得数据库中的所有表名, 并将他返回到一个string[]中。
3个回答
展开全部
Access有个系统内置表,系统内置表打开办法:
office 2003设置:工具 -> 选项 -> 视图 -> 勾选隐藏对象、系统对象。工具 -> 安全 -> 用户与组的权限 ,在对象名称中选定 MSysObjects ,然后权限中设置其读取权限。
office 2007设置:单击左上角图标 -> Access选项 -> 当前数据库 -> 导航 -> 导航选项 -> 勾选显示隐藏对象,显示系统对象。数据库工具选项卡 -> 用户和权限 -> 用户与组权限,对象类型选择表,对象名称选定MSysObjects,然后勾选“读取数据”权限
还有一种方法可以实现读取Access数据库中所有表:
最终读取的Sql语句为:
SELECT MSysObjects.DateCreate, MSysObjects.DateUpdate,MSysObjects.Name,MSysObjects.Type FROM MSysObjects
剩下的就是读这个Sql语句了。这个会吧
office 2003设置:工具 -> 选项 -> 视图 -> 勾选隐藏对象、系统对象。工具 -> 安全 -> 用户与组的权限 ,在对象名称中选定 MSysObjects ,然后权限中设置其读取权限。
office 2007设置:单击左上角图标 -> Access选项 -> 当前数据库 -> 导航 -> 导航选项 -> 勾选显示隐藏对象,显示系统对象。数据库工具选项卡 -> 用户和权限 -> 用户与组权限,对象类型选择表,对象名称选定MSysObjects,然后勾选“读取数据”权限
还有一种方法可以实现读取Access数据库中所有表:
最终读取的Sql语句为:
SELECT MSysObjects.DateCreate, MSysObjects.DateUpdate,MSysObjects.Name,MSysObjects.Type FROM MSysObjects
剩下的就是读这个Sql语句了。这个会吧
展开全部
public string[] GetShemaTableName(string database_path, string database_password) {
try
{
//获取数据表
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:DataBase Password='" + database_password + "Data Source=" + database_path;
conn.Open();
DataTable shemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] ...);
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("指定的限制集无效:\n" + ex.Message);
return null;
}
finally
{
conn.Close();
conn.Dispose();
}
}
try
{
//获取数据表
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:DataBase Password='" + database_password + "Data Source=" + database_path;
conn.Open();
DataTable shemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] ...);
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("指定的限制集无效:\n" + ex.Message);
return null;
}
finally
{
conn.Close();
conn.Dispose();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-08-24
展开全部
c#操作access数据库,怎么获得数据库中的所有表名, 并将他返回到一个string[]中。
怎样治疗初期痔疮啊?
怎样治疗初期痔疮啊?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询