2009-08-31 2 views
20

아무도 나를 도와 줄 수 있습니까? 나는 혼란스러워.Web.Config를 사용하여 SQL 데이터베이스 연결 문자열을 설정 하시겠습니까?

Web.Config 파일에서 연결할 수 있도록 연결 문자열을 설정하고 싶습니다.

코드에서 호출하는 방법이 필요합니다. 약간의 예를 만드십시오. :(

는 또한 Web.Config 파일 설정에 대한 도움이 필요합니다. 내가 사용하는 어떤 속성을 모르는

. 여기 내 자격 증명이 무엇인지. 내가 윈도우에 설정된 암호가없는의 스크린 샷입니다 . 난 정말 여기에 잃었어요 여기

답변

36

alt text가이 작업을 수행하는 방법을 커버하는 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 인스턴스가 있습니다.

초기 카탈로그은 데이터베이스 쿼리를 실행해야합니다. 정상적인 용도로는 데이터베이스 이름이됩니다.

인증을 위해 몇 가지 옵션이 있습니다. 당신의 SQL Server의 보안 섹션으로 이동하여 새 로그인을 만들 -

사용자 ID비밀번호은 매우 간단 여전히 SQL 자격 증명이 아닌 윈도우,하지만를 사용하는 것을 의미한다. 사용자 이름과 암호를 지정하고 데이터베이스에 권한을 부여하십시오. 모든 기본 대화 상자는 매우 자명합니다.

또한 통합 보안을 사용할 수 있습니다. 즉, .NET 응용 프로그램이 작업자 프로세스의 자격 증명을 사용하여 SQL에 연결을 시도합니다. 그것에 here for more info을 확인하십시오.

마지막으로, 코드에서 사용하여 연결 문자열을 얻을 수 있습니다 :

ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString 
+1

감사하지만 그것은 단지 코드에서 연결 문자열을 호출하는 방법을 보여줍니다, 어떻게 연결 문자열을 찾을 수 없습니다 그것을 설정하십시오. :(대단한 개요에 대한 –

+3

+1 ;-) –

+0

감사합니다. 믿어지지 않는 대답과 나는 그것을 사용하는 방법을 배웠다! : D –

0

가장 좋은 방법을, 신선한 시작 당신이 같은 엔터프라이즈 라이브러리를 잡아 가고있다. 그들은 당신을 위해 모든 것을 잘 연결하는 데 사용할 수있는 구성 도구를 가지고 있습니다.

또한 데이터 액세스 응용 프로그램 블록이있어 매우 유용하며 문서는 좋은 샘플로 채워져 있습니다.

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

0

당신이 (당신이) SQL Express를 사용하는 경우, 다음 로그인 자격 증명은 \ SQLEXPRESS 여기

당신이 추가 할 수있는 웹 config 파일에서 ConnectionString을이다.

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

장소는 시스템 바로 위에 있습니다.웹 태그. 웹 설정이 추가

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

"Database = yourBDName"및 "InitialCatalog = yourDBName"이라고 혼동합니다. 어느 게 어느 건지? –

+1

같은 .. 그냥 둘 다 같은 쓰기 :) – waqasahmed

1

및 데이터베이스 이름 카탈로그 이름 변경 :

그런 다음으로 호출 할 수 있습니다 프로젝트의

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

참조 System.Configuration 어셈블리 . 여기

당신이 config 파일에서 연결 문자열을 검색하는 방법입니다

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

http://www.connectionstrings.com 당신이 연결 문자열을 많이 찾을 수있는 사이트입니다. 필요한 모든 작업을 복사하여 붙여 넣기하고 필요에 맞게 수정하십시오. 모든 필요에 따라 모든 연결 문자열을 사용해야합니다.

0

Visual Studio의 도구에서 데이터베이스에 연결을 사용하면 서버와 데이터베이스의 이름을 추가하고 연결을 테스트 할 수 있습니다. 성공하면 대화 상자 아래에서 문자열을 복사 할 수 있습니다.

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

의 Web.config 것은

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

.CSS : 링크에 대한

System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; 
관련 문제