Использование Web.Config для настройки строки подключения к моей базе данных SQL? - PullRequest
21 голосов
/ 31 августа 2009

Может кто-нибудь помочь мне, пожалуйста? Я не совсем понимаю.

Я хочу настроить строку подключения, чтобы я мог просто вызвать ее из файла Web.Config.

Мне нужен способ вызова из моего кода, приведите небольшой пример. (

Мне также нужна помощь по настройке файла Web.Config.

Я не знаю, какие свойства использовать. Вот скриншот моих учетных данных. У меня нет пароля, настроенного для Windows. Я действительно потерян здесь.

alt text

Ответы [ 8 ]

36 голосов
/ 31 августа 2009

Вот отличный обзор 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>

Давайте разберем составные части здесь:

Источник данных - ваш сервер. В вашем случае именованный экземпляр SQL на sergio-desktop.

Исходный каталог - это запросы к базе данных по умолчанию, которые должны выполняться. Для обычного использования это будет имя базы данных.

Для аутентификации у нас есть несколько вариантов.

ИД пользователя и Пароль означает использование учетных данных SQL, а не Windows, но все же очень просто - просто зайдите в раздел «Безопасность» своего SQL Server и создайте новый логин. Дайте ему имя пользователя и пароль, и дайте ему права на вашу базу данных. Все основные диалоги очень понятны.

Вы также можете использовать встроенную защиту, что означает, что ваше приложение .NET попытается подключиться к SQL, используя учетные данные рабочего процесса. Проверьте здесь для получения дополнительной информации об этом.

Наконец, в коде вы можете получить строку подключения, используя:

ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString
3 голосов
/ 13 сентября 2009

http://www.connectionstrings.com - это сайт, где вы можете найти множество строк подключения. Все, что вам нужно сделать, это скопировать-вставить и изменить его в соответствии с вашими потребностями. Это обязательно иметь все строки подключения для всех ваших потребностей.

2 голосов
/ 31 августа 2009

Добавьте это в свою веб-конфигурацию и измените имя каталога, которым является ваша база данных:

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

Справочная система. Конфигурация сборки в вашем проекте.

Вот как вы извлекаете строку подключения из файла конфигурации:

System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
1 голос
/ 15 апреля 2011
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 голосов
/ 06 ноября 2013

Файл 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;
0 голосов
/ 20 октября 2009

Если вы используете Connect to Database под инструментами в Visual Studio, вы сможете добавить имя сервера и базы данных и протестировать соединение. В случае успеха вы можете скопировать строку из нижней части диалогового окна.

0 голосов
/ 31 августа 2009

Если вы используете 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;
0 голосов
/ 31 августа 2009

Лучше всего начинать с нуля, как вы, - взять библиотеку предприятия. У них есть инструмент для настройки, который вы можете использовать для удобного подключения.

У них также есть блок приложения для доступа к данным, который очень полезен и документация заполнена хорошими образцами.

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

...