请问:如何获得某数据库的所有表名以及表的个数

Francist 2006-07-10 04:29:37
请问:如何获得某数据库的所有表名以及表的个数
谢谢~
...全文
155 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
angelflower 2006-07-10
  • 打赏
  • 举报
回复
如果是sqlserver,可以使用SQLDMO
#region 获取数据库列表
/// <summary>
/// 返回数据库列表
/// </summary>
/// <param name="strServerName">服务器名称</param>
/// <param name="strUserName">登录名</param>
/// <param name="strPwd">密码</param>
/// <returns>返回数据库列表</returns>
public static ArrayList GetDBList(string strServerName, string strUserName, string strPwd)
{
ArrayList alDbs = new ArrayList();
SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass();
try
{
svr.Connect(strServerName, strUserName, strPwd);
foreach (SQLDMO.Database db in svr.Databases)
{
if (db.Name != null)
alDbs.Add(db.Name);
}

svr.DisConnect();
sqlApp.Quit();
}
catch (Exception s)
{
MessageBox.Show(s.Message);
}
return alDbs;
}
#endregion

#region 获取服务器列表
/// <summary>
/// 返回服务器列表
/// </summary>
/// <returns>返回服务器列表</returns>
public static ArrayList GetServerList()
{
ArrayList ServerList = new ArrayList();
SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
try
{
SQLDMO.NameList serverList = sqlApp.ListAvailableSQLServers();
for (int i = 1; i <= serverList.Count; i++)
{
ServerList.Add(serverList.Item(i));
}
sqlApp.Quit();
}
catch (Exception s)
{
MessageBox.Show(s.Message);
}
return ServerList;
}
#endregion

#region 获取指定库的表名列表
/// <summary>
/// 获取指定库的表名列表
/// </summary>
/// <param name="ServerName">服务器名</param>
/// <param name="UserName">用户名</param>
/// <param name="PassWord">密码</param>
/// <param name="DataBaseName">数据库名</param>
/// <returns>表名列表</returns>
public static ArrayList GetTableList(string ServerName, string UserName, string PassWord, string DataBaseName)
{
ArrayList TableList = new ArrayList();
SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
SQLDMO.SQLServer svr = new SQLDMO.SQLServerClass();
try
{
svr.Connect(ServerName, UserName, PassWord);
foreach (SQLDMO.Database db in svr.Databases)
{
if (db.Name == DataBaseName)
{
for (int i = 1; i <= db.Tables.Count; i++)
{
TableList.Add(db.Tables.Item(i, svr.Databases).Name);
}
}
}
svr.DisConnect();
sqlApp.Quit();
}
catch (Exception s)
{
MessageBox.Show(s.Message);
}
return TableList;
}
#endregion
yespie 2006-07-10
  • 打赏
  • 举报
回复

show databases;


use 表;
show tables;
江城老温 2006-07-10
  • 打赏
  • 举报
回复
select name from sysobjects where xtype='u' //所有用户表名称
select count(name) from syspbjects //所有表的个数
koally 2006-07-10
  • 打赏
  • 举报
回复
看看系统表,sysobjects.
Francist 2006-07-10
  • 打赏
  • 举报
回复
补充一下:我用的是MYSQL

110,535

社区成员

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

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

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