日期:2014-05-20  浏览次数:20951 次

用字符串可以连接数据库,但是用Linq to SQL 怎么就提示错误
下边是字符串,我可以连接上

    public static class SqlHelper
    {
        static string conStr = "Data Source=XIE\\SQL08R2;Integrated Security=SSPI;Initial Catalog=Northwind";
        private static SqlConnection con;
        public static SqlConnection Con
        {
            get 
            {
                if (con == null)
                {
                    con = new SqlConnection(conStr);
                    con.Open();
                }if(con.State==ConnectionState.Closed)
                {
                    con.Open();
                } if (con.State == ConnectionState.Broken)
                {
                    con.Close();
                    con.Open();
                }
                return con;
            }
        }



建立新项Linq to SQL,通过 服务器资源管理器--->数据链接 已经把数据库下的表给拖出来了  然后运行就出错了
我不是已经都连上了数据库了吗,为什么运行的时候就连不上了?

出错信息:
异常:已捕获:“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接)”(System.Data.SqlClient.SqlException)

捕获到一个 System.Data.SqlClient.SqlException:“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接)”




------最佳解决方案--------------------
服务器资源管理器 中的数据库链接是哪一个库?
这你要搞清楚
在映射的时候,LINQ TO SQL会根据这个自动生成连接字符串

DataContext.Connection  看看链接
http://msdn.microsoft.com/zh-cn/library/system.data.linq.datacontext.connection.aspx
------其他解决方案--------------------
一般是放在配置文件中的,当然也可以在代码中控制。

督察说的对,你再试试。
------其他解决方案--------------------
你确定你映射的数据库连接字符串也是这个?
static string conStr = "Data Source=XIE\\SQL08R2;Integrated Security=SSPI;Initial Catalog=Northwind";