【问题标题】:set SqlConnection string properly正确设置 SqlConnection 字符串
【发布时间】:2015-10-27 19:35:39
【问题描述】:

我在设置 sqlconnection 时遇到问题。 这是我的Web.Config 文件:

<configuration>
    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>
  <connectionStrings>
    <add name="SimpleDB"
         connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\FluksikartoN\Documents\SimpleDB.mdf;Integrated Security=True;Connect Timeout=30"
         providerName=".NET Framework Data Provider for SQL Server"/>
  </connectionStrings>
</configuration> 

所以基本上我想将行“Hello”添加到名为“book”的 sql 表中,该表在按钮单击时只有一个名为“Name”的字符串列,但我收到错误:“[Win32Exception (0x80004005): The network path was not found]”而且我没有看到任何错误在 sqlconnection 设置中。

aspx.cs 文件:

using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data.SqlClient;
    using System.Web.Services;

    namespace ProjectWWW
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            [System.Web.Services.WebMethod]     
            public static string InsertData(string ID){
                string connectionString = "Data Source=(LocalDB)\v11.0;AttachDbFilename=C:/Users/FluksikartoN/Documents/SimpleDB.mdf;Integrated Security=True;Connect Timeout=30";
                using (SqlConnection con = new SqlConnection(connectionString))
                    {
                        using (SqlCommand cmd = new SqlCommand("Insert into Book (Name) values(@Name)", con))
                        {
                            con.Open();
                            cmd.Parameters.AddWithValue("@Name", ID);
                            cmd.ExecuteNonQuery();
                            con.Close();
                            return "True";
                        }
                    }
        }




        protected void Button1_Click(object sender, EventArgs e)
        {
            InsertData("hELLO");
        }

【问题讨论】:

  • 只是出于好奇,你为什么在 web.config 中放置一个连接字符串然后不使用它?您正在代码中硬编码相同的连接字符串。

标签: c#


【解决方案1】:

您已将反斜杠更改为正斜杠。将它们改回来并使用@ 以不将它们视为转义字符:

string connectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\FluksikartoN\Documents\SimpleDB.mdf;Integrated Security=True;Connect Timeout=30";

或者只是从app.config 拉它,因为你也把它放在那里了:

string connectionString = ConfigurationManager.ConnectionStrings["SimpleDB"];

【讨论】:

  • 天哪,感谢这让我连续 3 天感到困扰,我是新手,我讨厌这种误解让我失望
【解决方案2】:

为什么不使用 Web.Config 连接字符串

string connectionString = ConfigurationManager.ConnectionStrings["SimpleDB"].ToString();

如果在Web.Config中指定了连接字符串,则无需在页面上指定连接字符串

【讨论】:

  • 你应该包括System.Configuration命名空间,像这样using System.Configuration
  • 最后添加.ToString()这样string connectionString = ConfigurationManager.ConnectionStrings["SimpleDB"].ToString();,更新ans为.ToString()
【解决方案3】:

您可以在 .cs 文件中像这样简单地使用

SqlConnection con = new SqlConnection(System.Configuration.CofigurationManager.ConnectionString["SqlConn"].ConnectionString.ToString());

我希望这对你有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 2017-09-04
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    相关资源
    最近更新 更多