8

내 web.config 파일에 연결 문자열이 정의되어있는 경우 SQL 데이터베이스에 대한 연결을 C# 코드 (미안)로 지정한 다음 저장 프로 시저. 결국 GridView에 대한 DataSource로이 데이터를 어떤 식 으로든 사용하고 싶습니다. 여기asp.net을 사용하여 저장 프로 시저 호출

연결 문자열이의 Web.config에 정의 된 방법입니다

<connectionStrings> 
<add name="db.Name" connectionString="Data Source=db;Initial Catalog=dbCat;User ID=userId;Password=userPass;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

DB 서버는 마이크로 소프트 SQL 서버입니다. 여기

내가 찾던입니다 :

ConnectionStringSettings conSet = ConfigurationManager.ConnectionStrings["db.Name"]; 
SqlConnection con = new SqlConnection(conSet.ConnectionString); 

데이터를 얻을 수있는 코드는 매우 간단하다. web.config 파일의 connectionString 변수에서 액세스하는 데 더 관심이있었습니다. 그렇게 같은 리소스 파일의 경우이 모든 아주 간단 물건을 정직하게하는 것입니다

using (var con = new SqlConnection(_connectionString)) 
{ 
    using (var cmd = new SqlCommand(_storedProcedureName, con)) 
    { 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.AddWithValue("@pMyParamater", myParamaterValue); 
     con.Open(); 

     using (var reader = cmd.ExecuteReader()) 
     { 
      while (reader.Read()) 
      { 
       // do something with the row 
      } 
     } 
    } 
} 

이 같은

+0

어떤 종류의 데이터베이스입니까? – N0Alias

+1

vb.net 또는 C#을 사용하고 있습니까? (구문을 돕기 위해). – JonH

답변

6

에서 필요한 모든 것을 찾을 수 있어야합니다 : connString 키의 이름입니다

private static readonly string connString = Resource1.connString;

. 그렇게 같은 web.config 파일

뭔가가있는 경우 : CONN가 웹 설정 파일에 정의되어

private static readonly string connString = System.Configuration.ConfigurationManager.AppSettings["strConn"];.

<add key="strConn" value="User ID=test;Password=test;Initial Catalog=TestDB;Data Source=NameOfServer;"/> 

SPROC에 전화 : 당신은 C#으로 코딩하는 경우입니다

//connString = the string of our database app found in the resource file 
       using (SqlConnection con = new SqlConnection(connString)) 
       { 
        using (SqlCommand cmd = new SqlCommand("EMPDLL_selClientByClientID", con)) 
        { 
         cmd.CommandType = CommandType.StoredProcedure; 
         cmd.Parameters.Add("@ClientID", SqlDbType.VarChar).Value = cID; 
         con.Open(); 

         using (SqlDataReader reader = cmd.ExecuteReader()) 
         { 
          if (reader.HasRows) 
          { 
           if (reader.Read()) 
           { 
             //more code 
           } 
          } 
         } 
        } 
        } 

, VB.net을 그 같은 거래 조금, 여기에 작은 샘플입니다 :) 더 wordier :

Public Sub DeleteEmployee(ByVal lVID As Long) 
     Dim conMyData As SqlConnection 
     Dim cmdDelete As SqlCommand 

     Try 
      conMyData = New SqlConnection(connString) 
      cmdDelete = New SqlCommand("delEmployee", conMyData) 

      With cmdDelete 
       .CommandType = CommandType.StoredProcedure 
       'add the parameters 
       .Parameters.Add("@LoginID", SqlDbType.BigInt).Value = lVID 'the request 
       conMyData.Open() 'open a connection 
       .ExecuteNonQuery() 'execute it 
      End With 

     Catch ex As Exception 
      Throw ex 
     Finally 
      cmdDelete = Nothing 
      conMyData.Close() 
      conMyData = Nothing 
     End Try 
    End Sub 

물론 try/catch/finally 대신 using 문을 사용하여 사용중인 리소스를 정리해야합니다.

+0

web.config에 키를 추가하고 싶지 않습니다 (그렇지 않으면 여러 web.config 파일을 편집해야합니다). 또는 정적 변수로 입력해야합니다. 내 web.config 파일에 정의 된대로 연결 문자열에 액세스 할 수 있습니까? – onit

+0

@onit은 웹 설정 파일 안에 있습니다. – JonH

+0

@onit - 특정 섹션 만 원하면'_SQLDBConnString = System.Configuration.ConfigurationManager '를 사용할 수 있습니다.ConnectionStrings (1) .ConnectionString()'을 호출하고'appsettings' 섹션 대신 ConnectionStrings 속성을 사용하십시오. – JonH

3

뭔가 ..., 당신은 당신이 ADO.NET documentation

+1

타입이 'var' 인 이유를 알고 싶으십니까? – JonH

+0

나는 이것이 복잡한 것이 아니라는 것을 알고있다. 난 그냥. NET 프로그래밍을 시작한 이래로 누군가가 올바른 방향으로 나를 가리킬 수 있는지 궁금합니다. – onit

+2

@onit 네, 그게 비판으로 받아 들여지지 않았 음을 알고 있습니다. 처음 접하는 분이라면 문서를 처음 읽는 습관에 빠지면 좋습니다. 그래도 여전히 붙어 있다면 좀 더 구체적인 질문을하십시오. 그렇게하면 더 많은 것을 배우게되며 때때로이 사이트에서 제공되는 나쁜 조언을 피할 것입니다. – fearofawhackplanet

관련 문제