C#代码连接数据库的问题 现在我有一个界面只显示用户名和密码,如果正确则登陆成功,失败则登陆失败并且选择服务器名称。我想要做的是服务器名称和数据库名称有什么办法确定是连接成功的??如果连接成功则让其输入用户名和密码。其实问题就是如何确定服务器和数据库存在。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在程序代码里面连接链接数据库的代码里面放一个委托,若执行成功了执行让输入用户名和密码的textbox.enable什么的吧。若失败了另一个委托显示错误信息。 string con="server="+server+";database="+database+";uid="+uid+";pwd="+pwd;这个链接需要用户和密码string con="server="+server+";Initial Catalog=" + catalog + ";Integrated Security=SSPI;现在我知道的连接方法就这两种,第二种可以不要用户名但是感觉别人不是这么做的 要求是使用用户名和密码登录失败的时候会显示服务器连接不成功,或者是用户名和密码错误。而如果显示服务器连接不成功的话,说明需要重新连接服务器。设置好服务器之后进行服务器的判断,我想知道这段应该用代码怎么写。感觉如果用window身份验证来判断似乎是不好的方法,所以请问大家是怎么实现的 如果将用户名和密码进行一个默认设置,这个不是不太安全嘛。如果用window身份验证好像不能登陆远程电脑吧。。求大神解惑啊。sos 看了LZ上面的混乱表达,估计LZ是想要混合连接数据库的方式 string conneString = "Server="服务器";DataBase="数据库";User ID=sa;Pwd=123"; 有几件事情你要明白。1。window身份验证只能连接本地sql,局域网下的服务器也不行。2。如果不需要用户名密码,你是获取不到DataBase这一级的,充其量只能获取到局域网下的Server这一级。有没有某个库,必须到登录到数据库以后才知道。就好比你不知对方电脑的用户名密码,只知道ip地址,你能知道它有没有D盘吗? 您不会想用ping来进行查询吧,如果是的话现在好像有路由或者ip限制的,至少我遇到过着各种问题。 您不会想用ping来进行查询吧,如果是的话现在好像有路由或者ip限制的,至少我遇到过着各种问题。不知道你是为了什么非要把用户名密码和服务器分开。如果你是局域网内的sql服务器,有办法获取sql列表,看服务器是否在列表中就可以了。如果你要跨网的,必须要用户名密码。填个错误的用户名密码,连接之后,返回的错误信息不一样的,如果服务器存在,错误信息是[用户XX登录失败]。ping只能知道服务器是否存在,但是服务器上有没有sql,sql开不开没法知道。虽然sql默认端口1433,但是这个端口是可以改的,一旦改了,就没法ping sql了。 局域网的sql,我的机子是做客户端程序的。服务器在局域网中的另外一个机子上192.168.1.4的IP上 ip地址会变的,你最好用机器名,下面的方法可以列举出局域网内可用的SQL Server实例。你查一下在不在列表就行了。可以查出机器名,实例名,sql版本等 //枚举本地网络内的所有可用SQL Server实例 SqlDataSourceEnumerator SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance; //以DataTable的形式返回局域网内所有可见的sqlserver实例 DataTable dt = SqlDataSourceEnumerator.GetDataSources(); List<string> list = new List<string>(); foreach (DataRow dr in dt.Rows) { //服务器名称 list.Add(dr["ServerName"].ToString()); //实例名称 //list.Add(dr["InstanceName"].ToString()); //list.Add(dr["ServerName"].ToString() +@"\" +dr["InstanceName"].ToString()); } //加载到下拉框中 this.cbSource.DataSource = list; 在局域网中也可以根据ip地址得到机器名Dns.GetHostByAddress("192.168.1.111").HostName; 没有找到。。Quote: 引用 17 楼 u011303459 的回复:quote] 求一个解析eml的类库 高德地图应用开发问题? Winform Panel 深复制 凑凑热闹,分享自己写的一个非常简单的代码 小声的问一个关于C#的弱智问题 winform幻灯片效果 请问在cs文件里怎么取得当前类的类名? 【重要的企业大量数据打印问题】急!!!!!!!!!!!!!!!!!!!!!!!!!!!!! GridView中第一页正常,点第二页报错 InputBox问题 WPF,一个集合通常不会实现属性更改通知的吗? c# 字符串中如何删除掉“特殊字符”
string con="server="+server+";Initial Catalog=" + catalog + ";Integrated Security=SSPI;
现在我知道的连接方法就这两种,第二种可以不要用户名但是感觉别人不是这么做的
1。window身份验证只能连接本地sql,局域网下的服务器也不行。
2。如果不需要用户名密码,你是获取不到DataBase这一级的,充其量只能获取到局域网下的Server这一级。有没有某个库,必须到登录到数据库以后才知道。
就好比你不知对方电脑的用户名密码,只知道ip地址,你能知道它有没有D盘吗?
不知道你是为了什么非要把用户名密码和服务器分开。
如果你是局域网内的sql服务器,有办法获取sql列表,看服务器是否在列表中就可以了。
如果你要跨网的,必须要用户名密码。填个错误的用户名密码,连接之后,返回的错误信息不一样的,如果服务器存在,错误信息是[用户XX登录失败]。ping只能知道服务器是否存在,但是服务器上有没有sql,sql开不开没法知道。虽然sql默认端口1433,但是这个端口是可以改的,一旦改了,就没法ping sql了。
你查一下在不在列表就行了。可以查出机器名,实例名,sql版本等
//枚举本地网络内的所有可用SQL Server实例
SqlDataSourceEnumerator SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance; //以DataTable的形式返回局域网内所有可见的sqlserver实例
DataTable dt = SqlDataSourceEnumerator.GetDataSources(); List<string> list = new List<string>();
foreach (DataRow dr in dt.Rows)
{
//服务器名称
list.Add(dr["ServerName"].ToString());
//实例名称
//list.Add(dr["InstanceName"].ToString());
//list.Add(dr["ServerName"].ToString() +@"\" +dr["InstanceName"].ToString());
}
//加载到下拉框中
this.cbSource.DataSource = list;
Dns.GetHostByAddress("192.168.1.111").HostName;