做了一个winforms的程序,手写了一个连接数据库的类,其中的一个方法是获得SqLConnection的,我是这样写的private static XmlDocument xdoc;
private static SqlConnection scon;
private static SqlCommand scmd;
private static string server;
private static string database;
private static string uid; 
private static string pwd;
private static string connStr;
private static void getCon()
{
  xdoc = new XmlDocument();
  xdoc.Load("DBConfig.xml");
  server=xdoc.SelectSingleNode("/DBInfo/server").InnerText.Trim();
  database = xdoc.SelectSingleNode("/DBInfo/database").InnerText.Trim();
  uid = xdoc.SelectSingleNode("/DBInfo/uid").InnerText.Trim();
  pwd = xdoc.SelectSingleNode("/DBInfo/pwd").InnerText.Trim();
  connStr = "server = " + server + ";database = " + database + ";uid = " + uid + ";pwd = " + pwd + ";";
  MessageBox.Show(connStr);
  scon = new SqlConnection(connStr);
}
下面的方法一开始就调用了这样一个方法
DBManager.getCon();
scon.Open();
其他代码省了
问题来了,当我运行程序的时候,弹出的第一个MessageBox写的是
server = .;database = 我的数据库;uid = sa;pwd = sa;
这样执行起来应该没有错啊,可是当执行到scon.Open();的时候就出现了异常
异常信息是“在建立与服务器的连接时出错。在连接到SQL Server 2005时,在默认的设置下SQL Server 不允许进行远程连接可能会导致此失败。(provider:命名管道提供程序,error:40 - 无法打开到SQL Server的连接)”请问这是为什么?要怎么解决呢?我前写别的成学的时候还有连接上了呢,现在就不行了,麻烦各位高手们了!

解决方案 »

  1.   

    1、设置你xml中的DBInfo/server为(local),然后试试;
    2、配置工具->sql server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine 节点,先择"远程连接",接下建议选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务,然后试试;
      

  2.   

    搂主把连接串中的 server=. 改成 server=服务器管理器窗口中显示的服务器名称,看看呢
      

  3.   

    这个的确好用了,但是为什么呢?怎样配置我的电脑或者SQLServer能让我用.也能访问的到呢?
      

  4.   

    SQL Server 2005 远程连接要对SQL Server进行设置,默认师部允许连接的
      

  5.   

    你在每次打开db连接之后 会有关闭动作吗? 如果没有 请每次连接完后 关闭db连接 就不会出现这样问题了
      

  6.   

    要怎么设置SQL的远程连接呢?能说的详细点么?
    我一般都有关闭连接的,而且我一般都是检查是否有连接,如果没有才会打开连接的,麻烦各位了!
      

  7.   

    其实这是由于安装VS2005的时候自动安装SQL Server2005引起的问题,所以要设置一下SQL Server2005
    搂主google一下便知。另,SQL Server2000需要安装sp3补丁才能远程使用IP访问