关于C#中使用SQLDMO来获取数据库中的一些操作
首先添加SQLDMO的引用
1:通过SQLDMO来获取可用的网络数据库(区域网当中)
public static List<string> get可用SQL服务器()
{
SQLDMO.Application app = new SQLDMO.Application();
SQLDMO.NameList lst可用SQLServer服务器 = app.ListAvailableSQLServers();
List<string> lst = new List<string>();
for (int i = 1; i <= lst可用SQLServer服务器.Count; i++)
{
string str = lst可用SQLServer服务器.Item(i);
lst.Add(str);
}
return lst;
}
2.使用SQLDMO来获取数据库当中的所有表
public static List<string> get数据库所有表(string strServerName, string strDatabase, string strUserID, string strPwd)
{
SQLDMO.SQLServer Server = new SQLDMO.SQLServerClass();
List<string> lst = null;
//连接到服务器
try
{
Server.Connect(strServerName, strUserID, strPwd);
//对所有的数据库遍历,获得指定数据库
for (int i = 0; i < Server.Databases.Count; i++)
{
//判断当前数据库是否是指定数据库
if (Server.Databases.Item(i + 1).Name == strDatabase)
{
lst = new List<string>();
//获得指定数据库
SQLDMO._Database db = Server.Databases.Item(i + 1);
//获得指定数据库中的所有表
for (int j = 0; j < db.Tables.Count; j++)
{
lst.Add(db.Tables.Item(j + 1).Name);
}
}
}
}
catch
{
MessageBox.Show("获取失败");
}
return lst;
}
3.使用SQLDMO来获取数据库当中的指定表的所有列
public static List<string> get数据库表中列(string strServerName, string strDatabase, string strUserID, string strPwd,string str表名)
{
SQLDMO.SQLServer Server = new SQLDMO.SQLServerClass();
List<string> lst = null;
//连接到服务器
try
{
Server.Connect(strServerName, strUserID, strPwd);
//对所有的数据库遍历,获得指定数据库
for (int i = 0; i < Server.Databases.Count; i++)
{
//判断当前数据库是否是指定数据库
if (Server.Databases.Item(i + 1).Name == strDatabase)
{
lst = new List<string>();
//获得指定数据库
SQLDMO._Database db = Server.Databases.Item(i + 1);
//获得指定数据库中的所有表
for (int j = 0; j < db.Tables.Count; j++)
{
//lst.Add(db.Tables.Item(j + 1).Name);
if (db.Tables.Item(j + 1).Name == str表名)
{
foreach (SQLDMO._Column item in db.Tables.Item(j + 1).Columns)
{
lst.Add(item.Name);
}
}
}
}
}
}
catch
{
MessageBox.Show("获取失败");
}
return lst;
}