ADO.NET 1.1下,如何获取数据库中有哪些表、视图?

Roaming_Sheep 2005-07-11 11:25:46
ADO.NET有没有实现一个通用的方法来获取一个数据库连接下的所有表名和视图名?

如果没有的话,那么针对不同的数据库,又分别采用什么查询来获取表名和视图名?
网上只找得到SQL Server的相应查询,而找不到Oracle的,或者通过oledb/odbc连接的未知类型的数据库的
...全文
91 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhgroup 2005-07-11
  • 打赏
  • 举报
回复
其中sysobjects表中的xtype字段表示的就是对象类型,可根据此类型进行判断查找
zhgroup 2005-07-11
  • 打赏
  • 举报
回复
其中sysobjects表中的xtype字段表示的就是对象类型,可根据此类型进行判断查找
lampson123 2005-07-11
  • 打赏
  • 举报
回复
例如

SELECT *
FROM sysobjects
WHERE (xtype = 'U')

取用户表。。
zhgroup 2005-07-11
  • 打赏
  • 举报
回复
从当前库的sysobjects表中和master库中的相应表中取数据,具体可以查看帮助文档.
shupu 2005-07-11
  • 打赏
  • 举报
回复
参考一下
using(OleDbConnection conn=new OleDbConnection(this._connectionString))
{
conn.Open();
DataTable dt=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
DataRow[] rows=dt.Select("TABLE_TYPE='TABLE' or TABLE_TYPE='VIEW'");
foreach(DataRow row in rows)
{
dt2.Rows.Add(row.ItemArray);
}
ed.Tables.Add(dt2);
}
syeerzy 2005-07-11
  • 打赏
  • 举报
回复
没有通用的办法.比如对于yet数据源(比如Excel)你好像根本没办法知道有哪些表.
Roaming_Sheep 2005-07-11
  • 打赏
  • 举报
回复
回复人: zhgroup(机器不会错,错的是人!) ( ) 信誉:99 2005-07-11 11:37:00 得分: 0

从当前库的sysobjects表中和master库中的相应表中取数据,具体可以查看帮助文档.

————————————————————————————————

谢谢你的解答

但我想问的是一个比较通用的方法,而不是针对于sqlserver上的

Roaming_Sheep 2005-07-11
  • 打赏
  • 举报
回复
回复人: shupu(落魄一遥) ( ) 信誉:98 2005-07-11 11:34:00 得分: 0


参考一下
using(OleDbConnection conn=new OleDbConnection(this._connectionString))
{
conn.Open();
DataTable dt=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
DataRow[] rows=dt.Select("TABLE_TYPE='TABLE' or TABLE_TYPE='VIEW'");
foreach(DataRow row in rows)
{
dt2.Rows.Add(row.ItemArray);
}
ed.Tables.Add(dt2);
}

——————————————————————————————————

先谢谢你的解答

但如果我用OracleConnection,并没有提供类似的方法,又该如何做?
是只能根据Oracle数据库单独做一套查询元数据的sql来查询吗?

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧