日期:2014-05-17  浏览次数:20915 次

C#代码连接数据库的问题
现在我有一个界面只显示用户名和密码,如果正确则登陆成功,失败则登陆失败并且选择服务器名称。
我想要做的是服务器名称和数据库名称有什么办法确定是连接成功的??如果连接成功则让其输入用户名和密码。
其实问题就是如何确定服务器和数据库存在。

------解决方案--------------------
看了LZ上面的混乱表达,估计LZ是想要混合连接数据库的方式 string conneString = "Server="服务器";DataBase="数据库";User ID=sa;Pwd=123";
------解决方案--------------------
如果连接成功则让其输入用户名和密码,你这个要求就是奇葩要求,你不输入怎么知道用户存在不存在
------解决方案--------------------
有几件事情你要明白。
1。window身份验证只能连接本地sql,局域网下的服务器也不行。
2。如果不需要用户名密码,你是获取不到DataBase这一级的,充其量只能获取到局域网下的Server这一级。有没有某个库,必须到登录到数据库以后才知道。
就好比你不知对方电脑的用户名密码,只知道ip地址,你能知道它有没有D盘吗?


------解决方案--------------------
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;