【问题标题】:Using the Web.Config to set up my SQL database connection string?使用 Web.Config 设置我的 SQL 数据库连接字符串?
【发布时间】:2010-11-24 05:41:55
【问题描述】:

谁能帮帮我?我糊涂了。

我想设置我的连接字符串,这样我就可以从我的 Web.Config 文件中调用它。

我需要一种从我的代码中调用它的方法,请举个小例子。 :(

我还需要有关设置 Web.Config 文件的帮助。

我不知道要使用什么属性。这是我的凭据的屏幕截图。我没有为 Windows 设置密码。我真的迷路了。

【问题讨论】:

    标签: asp.net sql sql-server sql-server-2008 web-config


    【解决方案1】:

    这里有一个great overview on MSDN,其中介绍了如何执行此操作。

    在您的 web.config 中,添加一个连接字符串条目:

    <connectionStrings>
      <add 
        name="MyConnectionString" 
        connectionString="Data Source=sergio-desktop\sqlexpress;Initial 
        Catalog=MyDatabase;User ID=userName;Password=password"
        providerName="System.Data.SqlClient"
      />
    </connectionStrings>
    

    让我们在这里分解组成部分:

    数据源是您的服务器。在您的情况下,sergio-desktop 上的命名 SQL 实例。

    Initial Catalog 是应执行的默认数据库查询。对于正常使用,这将是数据库名称。

    对于身份验证,我们有几个选项。

    用户 ID密码 表示使用 SQL 凭据,而不是 Windows,但仍然非常简单 - 只需进入 SQL Server 的安全部分并创建一个新登录名。给它一个用户名和密码,并给它访问你的数据库的权限。所有基本对话框都非常不言自明。

    您还可以使用集成安全性,这意味着您的 .NET 应用程序将尝试使用工作进程的凭据连接到 SQL。检查here for more info

    最后,在代码中,您可以使用以下方法获取连接字符串:

    ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString
    

    【讨论】:

    • 感谢您的链接,但它只显示了如何从代码中调用连接字符串,而不是如何找到连接字符串并进行设置。 :(
    • 谢谢一百万。令人难以置信的答案,我已经学会了如何使用它! :D
    【解决方案2】:

    您最好的选择是去获取企业库,像您一样从头开始。他们有一个配置工具,您可以使用它来很好地为您连接所有东西。

    他们还有一个非常有用的数据访问应用程序块,并且文档中充满了很好的示例。

    http://www.microsoft.com/downloads/details.aspx?FamilyId=90DE37E0-7B42-4044-99BE-F8ECFBBC5B65&displaylang=en

    【讨论】:

      【解决方案3】:

      如果您使用的是 SQL Express(您是),那么您的登录凭据是 .\SQLEXPRESS

      这是您可以添加的网络配置文件中的连接字符串:

      <connectionStrings>
      <add connectionString="Server=localhost\SQLEXPRESS;Database=yourDBName;Initial Catalog= yourDBName;Integrated Security=true" name="nametoCallBy" providerName="System.Data.SqlClient"/>
      </connectionStrings>
      

      地点就在 system.web 标记的上方。

      那么你可以通过以下方式调用它:

      connString = ConfigurationManager.ConnectionStrings["nametoCallBy"].ConnectionString;
      

      【讨论】:

      • 我很困惑你说:“Database=yourBDName”和“InitialCatalog=yourDBName”。哪个是哪个?
      • same.. 两者都写一样 :)
      【解决方案4】:

      将此添加到您的网络配置并更改目录名称,即您的数据库名称:

        <connectionStrings>
          <add name="MyConnectionString" connectionString="Data Source=SERGIO-DESKTOP\SQLEXPRESS;Initial Catalog=YourDatabaseName;Integrated Security=True;"/></connectionStrings>
      

      在您的项目中引用 System.Configuration 程序集。

      这是从配置文件中检索连接字符串的方法:

      System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
      

      【讨论】:

        【解决方案5】:

        http://www.connectionstrings.com 是一个可以找到大量连接字符串的站点。您需要做的就是复制粘贴并修改它以满足您的需要。它肯定拥有满足您所有需求的所有连接字符串。

        【讨论】:

          【解决方案6】:

          如果您使用 Visual Studio 中工具下的连接到数据库,您将能够添加服务器和数据库的名称并测试连接。成功后,您可以从对话框底部复制字符串。

          【讨论】:

            【解决方案7】:
            using System;
            using System.Collections;
            using System.Configuration;
            using System.Data;
            using System.Data.SqlClient;
            using System.Linq;
            using System.Web;
            using System.Web.Security;
            using System.Web.UI;
            using System.Web.UI.HtmlControls;
            using System.Web.UI.WebControls;
            using System.Web.UI.WebControls.WebParts;
            using System.Xml.Linq;
            
            public partial class form_city : System.Web.UI.Page
            {
                connection con = new connection();
                DataTable dtable;
                string status = "";
            
                protected void Page_Load(object sender, EventArgs e)
                {
                    TextBoxWatermarkExtender1.WatermarkText = "Enter State Name !";        
                    if (!IsPostBack)
                    {
                        status = "Active";
                        fillgrid();
                        Session.Add("ope", "Listing");
                    }
                }
                protected void fillgrid()
                {
                    //Session.Add("ope", "Listing");
                    string query = "select *";
                    query += "from State_Detail where Status='" + status + "'";
                    dtable = con.sqlSelect(query);
                    grdList.DataSource = dtable;
                    grdList.DataBind();
                    lbtnBack.Visible = false;
                }
                protected void grdList_PageIndexChanging(object sender, GridViewPageEventArgs e)
                {
                    grdList.PageIndex = e.NewPageIndex;
                    string operation = Session["ope"].ToString();
                    if (operation == "ViewLog")
                        status = "Inactive";
                    else if (operation == "Listing")
                        status = "Active";
                    fillgrid();
                }
                public string GetImage(string status)
                {
                    if (status == "Active")
                        return "~/images/green_acti.png";
                    else
                        return "~/images/red_acti.png";
                }
                protected void grdList_RowDeleting(object sender, GridViewDeleteEventArgs e)
                {
                    string st = "Inactive";
                    int State_Id = Convert.ToInt32(grdList.DataKeys[e.RowIndex].Values[0]);
                    string query = "update State_Detail set Status='" + st + "'";
                    query += " where State_Id=" + State_Id;
                    con.sqlInsUpdDel(query);
                    status = "Active";
                    fillgrid();
                }    
                protected void grdList_RowCommand(object sender, GridViewCommandEventArgs e)
                {
                    if (e.CommandName.Equals("Select"))
                    {
                        string query = "select * ";
                        query += "from State_Detail where State_Id=" + e.CommandArgument;
                        dtable = con.sqlSelect(query);
                        grdList.DataSource = dtable;
                        grdList.DataBind();
                        lbtnBack.Visible = true;
                    }
                }
                protected void ibtnSearch_Click(object sender, ImageClickEventArgs e)
                {
                    Session.Add("ope", "Listing");
                    if (txtDepId.Text != "")
                    {
                        string query = "select * from State_Detail where State_Name like '" + txtDepId.Text + "%'";
                        dtable = con.sqlSelect(query);
                        grdList.DataSource = dtable;
                        grdList.DataBind();
                        txtDepId.Text = "";
                    }
                }
                protected void grdList_RowEditing(object sender, GridViewEditEventArgs e)
                {
                    int State_Id = Convert.ToInt32(grdList.DataKeys[e.NewEditIndex].Values[0]);
                    Session.Add("ope", "Edit");
                    Session.Add("State_Id", State_Id);
                    Response.Redirect("form_state.aspx");
                }
            
                protected void grdList_Sorting(object sender, GridViewSortEventArgs e)
                {
                    string operation = Session["ope"].ToString();
                    if (operation == "ViewLog")
                        status = "Inactive";
                    else if (operation == "Listing")
                        status = "Active";
            
                    string query = "select * from State_Detail";
                    query += " where Status='" + status + "'";
                    dtable = con.sqlSelect(query);
                    DataView dview = new DataView(dtable);
                    dview.Sort = e.SortExpression + " asc";
                    grdList.DataSource = dview;
                    grdList.DataBind();
                }
            }
            <asp:Image ID="imgGreenAct" ImageUrl='<%# GetImage(Convert.ToString(DataBinder.Eval(Container.DataItem, "Status")))%>' AlternateText='<%# Bind("Status") %>' runat="server" />
            

            【讨论】:

              【解决方案8】:

              Web.config 文件

              <connectionStrings>
                <add name="MyConnectionString" connectionString="Data Source=SERGIO-DESKTOP\SQLEXPRESS;    Initial Catalog=YourDatabaseName;Integrated Security=True;"/>
              </connectionStrings>
              

              .cs 文件

              System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
              

              【讨论】:

                猜你喜欢
                • 2015-04-25
                • 1970-01-01
                • 2012-04-17
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-08-30
                相关资源
                最近更新 更多