C#从SQLServer连接字符串获取SQLServer服务器信息

dreams1981 dreams1981 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在网上找到的一个方法

string strCnn="Data Source=.;Initial Catalog=DianJiCS;Persist Security Info=True;User ID=sa;Password=sa";

string[] strs;
strs = strCnn.Split(';');

string path = "";//数据库备份路径
string dataBaseName = "";//数据库名称
string hostName = "";//当前连接的SqlServer服务器名称
string userID = "";//SQLServer连接用户名
string password = "";//SQLServer连接密码

#region 获取

foreach (string str in strs)
{
if (str.Contains("Data Source") || str.Contains("Server"))//SQLServer服务器名称
{
hostName = str.Substring(str.IndexOf("=") + 1);
}
else
{
if (str.Contains("Initial Catalog") || str.Contains("Database"))
{
dataBaseName = str.Substring(str.IndexOf("=") + 1);
}
else
{
if (str.Contains("User ID") || str.Contains("UID"))
{
userID = str.Substring(str.IndexOf("=") + 1);
}
else
{
if (str.Contains("Password") || str.Contains("PWD"))
{
password = str.Substring(str.IndexOf("=") + 1);
}
}
}
}
}

#endregion

但觉得该方法有点问题,
1)str.Contains区分大小写的,(虽然可以用indexof解决)
2)strs = strCnn.Split(';'),str.IndexOf("=") 用";" "="分隔时.如果sa密码含有";"或"="时候就会出现问题


using (SqlConnection connection = new SqlConnection(ConnectionString))
{
string DataSource = connection.DataSource;
string Database = connection.Database;
}

上面的方法也只能获取到 DataSource 跟 Database,用户密码无法获取

大家有更好的方法吗?
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
dreams1981
.NET社区 62,271 成员 668,968 内容