1,最近做一个项目,需要在C#代码中模拟SQLServer登录,因为需要获取服务器所有数据库名称,然后进行数据库的增删改查。
2,网上资料很多,我就把自己的记录一下,留着下次查看。
///
/// 模拟SQLServer登录 获取所有数据库实例
///
/// 数据库服务器地址 本地:local或者. 远程:192.168.1.123
/// 登录数据库的用户名。
/// 登陆数据库的密码。
/// 返回包含数据实例名的列表。
private ArrayList GetAllDataBase(string ip, string username, string password)
{
ArrayList DBNameList = new ArrayList();
try
{
SqlConnection Connection = null;
//两种验证方式,上面是Windows身份验证,只需要输入服务器名称就可以
//下面是SqlServer身份验证,需要输入数据库用户名与密码
if (Windows身份验证)
{
Connection = new SqlConnection(String.Format(“Data Source={0};Initial Catalog = master;Integrated Security=True”, ip));
}
else
{
Connection = new SqlConnection(String.Format(“Data Source={0};Initial Catalog = master;User ID = {1};PWD = {2}”, ip, username, password));
}
DataTable DBNameTable = new DataTable();
//查询数据库所有表 包含系统表
SqlDataAdapter Adapter = new SqlDataAdapter("select name from master..sysdatabases ", Connection);
lock (Adapter)
{
Adapter.Fill(DBNameTable);
}
foreach (DataRow row in DBNameTable.Rows)
{
DBNameList.Add(row["name"]);
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return DBNameList;
}