使用Web.Config设置我的SQL数据库连接字符串?

时间:2009-08-31 01:48:19

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

有人可以帮帮我吗?我糊涂了。

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

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

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

我不知道要使用哪些属性。这是我的凭据的截图。我没有为Windows设置密码。我真的迷失在这里。

alt text

8 个答案:

答案 0 :(得分:36)

这是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实例。

初始目录是应该执行的默认数据库查询。对于正常用途,这将是数据库名称。

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

用户ID 密码表示使用SQL凭据,而不是Windows,但仍然非常简单 - 只需进入SQL Server的“安全”部分并创建新的登录。为其提供用户名和密码,并授予其数据库权限。所有基本对话都是不言自明的。

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

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

ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

  <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;

答案 3 :(得分:1)

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" />

答案 4 :(得分:0)

你最好的选择,就像你一样新鲜,就是抓住企业库。他们有一个配置工具,您可以用它来很好地连接所有内容。

他们还有一个非常有用的数据访问应用程序块,文档中填充了很好的样本。

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

答案 5 :(得分:0)

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

以下是您可以添加的Web配置文件中的connectionString:

<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;

答案 6 :(得分:0)

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

答案 7 :(得分:-1)

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;