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

问题描述 投票:21回答:8

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

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

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

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

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

asp.net sql sql-server sql-server-2008 web-config
8个回答
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

3
投票

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


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;

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

0
投票

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

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

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


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;

0
投票

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


-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;
© www.soinside.com 2019 - 2024. All rights reserved.