建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误



当我想与数据库交互时,我得到了这段代码。

我的 web.config 包含一个连接字符串,即:

<?xml version="1.0"?>
<configuration>
 <connectionStrings>
<add name="ApplicationServices" connectionString="data source=.SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
<add name="WebNewYearConnectionString" connectionString="Data Source=XXXX; Initial Catalog=XXXXX; User ID=XXXXX; Password=XXXXXX;"     providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<customErrors mode="Off"/>
<authentication mode="Forms">
  <forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
</authentication>
<membership>
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
  </providers>
</membership>
<profile>
  <providers>
    <clear/>
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
  </providers>
</profile>
<roleManager enabled="false">
  <providers>
    <clear/>
    <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/"/>
    <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/"/>
  </providers>
</roleManager>
</system.web>
 <system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<system.data>
<DbProviderFactories>
    <remove invariant="System.Data.SqlServerCe.4.0"/>
    <add name="Microsoft SQL Server Compact Edition Client Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact Edition Client 4.0" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</DbProviderFactories>
</system.data>

我的代码包含

xSqlConnections con = new SqlConnections("System.Configuration.ConfigurationManager.ConnectionStrings["WebNewYearConnectionString"].ConnectionString");
    protected void Page_Load(object sender, EventArgs e)
    {
        string Clientname = Request.QueryString["name"];
        string str = "select * from Client_Detail where Client_Name='" + Clientname + "'";
        DataTable dat;
        SqlDataAdapter da = new SqlDataAdapter(sql, con);
        DataSet ds = new DataSet();
        da.Fill(ds, "tab");
        DataTable dat = new DataTable();
        dat = ds.Tables["tab"];
        EventName.Text = dat.Rows[0]["Event_Name"].ToString();
        Event_Description.Text = dat.Rows[0]["Description"].ToString();
        Event_Date.Text = dat.Rows[0]["Date"].ToString();
        Entry_Fee.Text = dat.Rows[0]["Price"].ToString();
        Event_Client.Text = dat.Rows[0]["Client_Name"].ToString();
        Event_Location.Text = dat.Rows[0]["Event_Location"].ToString();
        Session["Event_Name"] = EventName.Text;

    }

我的代码给出了这个错误

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及 SQL Server 是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接)

大。填充(ds, "tab");

这条线

xSqlConnections con = new SqlConnections("System.Configuration.ConfigurationManager.ConnectionStrings["WebNewYearConnectionString"].ConnectionString");
        protected void Page_Load(object sender, EventArgs e)
        {
            con.open();
            string Clientname = Request.QueryString["name"];
            string str = "select * from Client_Detail where Client_Name='" + Clientname + "'";
            DataTable dat;
            SqlDataAdapter da = new SqlDataAdapter(sql, con);
            DataSet ds = new DataSet();
            da.Fill(ds, "tab");
            DataTable dat = new DataTable();
            dat = ds.Tables["tab"];
            EventName.Text = dat.Rows[0]["Event_Name"].ToString();
            Event_Description.Text = dat.Rows[0]["Description"].ToString();
            Event_Date.Text = dat.Rows[0]["Date"].ToString();
            Entry_Fee.Text = dat.Rows[0]["Price"].ToString();
            Event_Client.Text = dat.Rows[0]["Client_Name"].ToString();
            Event_Location.Text = dat.Rows[0]["Event_Location"].ToString();
            Session["Event_Name"] = EventName.Text;
            con.Close();
        }

*编辑*

如果这已解决问题,则需要仔细检查连接字符串,因为它未正确解析。

执行此操作的一种简单方法是转到VS Studio中的服务器资源管理器,然后手动添加与数据库的连接。测试连接以查看它是否解析。如果是这样,则可以从数据连接的属性选项卡中复制连接字符串。

希望这有帮助。

在你的代码中,整个事情周围真的有引号吗? 如果是这样,那就是你的问题。

xSqlConnections con = new SqlConnections("System.Configuration.ConfigurationManager.ConnectionStrings["WebNewYearConnectionString"].ConnectionString");
                                         ^

像这样更改连接实例:

xSqlConnections con = new SqlConnections(System.Configuration.ConfigurationManager.ConnectionStrings["WebNewYearConnectionString"].ConnectionString);

最新更新