8

Web.config dosyasında tanımlı bir bağlantı dizim varsa, SQL db ile C# kodunu (belirttiğim için unuttum) kodu nasıl oluşturabilirim? saklı yordam. Daha sonra bu verileri bir şekilde GridView için DataSource'ım olarak kullanmak isterim. İşteAsp.net ile saklı yordamı çağırma

bağlantı dizesi web.config nasıl tanımlandığını geçerli:

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

db sunucu, bir Microsoft SQL sunucusudur. İşte

aradığım buydu:

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

verileri almak için kod oldukça basittir. Web.config dosyasındaki bir connectionString değişkeninden erişmeye daha çok ilgi duyuyordum. o kadar gibi bir kaynak dosyası varsa bu tüm bunlar son derece basit dürüst olmaktır

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

böyle

+0

Ne tür bir veritabanı? – N0Alias

+1

vb.net veya C# kullanıyor musunuz? (Sadece sözdizimi ile size yardımcı olmak için). – JonH

cevap

6

itibaren gereken her şeyi bulmak mümkün olmalıdır : CONNSTRING anahtarının adıdır

private static readonly string connString = Resource1.connString;

. o kadar gibi bir web.config dosya

şey ise: bağl web yapılandırma dosyasında tanımlanır

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

Sonra sproc çağırır: C# kodlama eğer var

//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 onun aynı anlaşma sadece biraz, burada küçük bir örnek var :) daha 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 

Kullanılmakta olan kaynaklarınızı temizlemenizi sağlamak için try/catch/finally yerine using ifadesini kullanmalısınız.

+0

Web.config'ime bir anahtar eklemek istemiyorum (aksi halde birden fazla web.config dosyasını düzenlemeliyim) veya statik değişken olarak yazmam gerekiyor. Bağlantı dizgisi, web.config dosyasında yazımda olduğu gibi tanımlanmışsa erişilebiliyor mu? – onit

+0

@onit, bir web yapılandırma dosyasının içinde. – JonH

+0

@onit - Eğer sadece belirli bir bölüm istiyorsanız '_SQLDBConnString = System.Configuration.ConfigurationManager yapabilirsiniz.ConnectionStrings (1) .ConnectionString() 've 'appsettings' bölümü yerine ConnectionStrings özelliğini kullanın. – JonH

3

şey ..., size ADO.NET documentation

+1

Ack neden var biliyor musunuz? – JonH

+0

Bunun karmaşık bir şey olmadığını anlıyorum. Sadece tam anlamıyla .NET programlamayı başlattığım için birisinin beni doğru yönde gösterip gösteremeyeceğini merak ediyordum. – onit

+2

@onit Evet, bunun bir eleştiri anlamına gelmediğini anlıyorum. Bir şeye yeni iseniz, belgelerin ilk nokta olarak okunması alışkanlığına girmek iyidir. Daha sonra hala sıkışmış olursanız SO ile ilgili daha spesifik bir soru sorun. Bu şekilde daha fazla öğreneceksiniz ve bazen bu sitede verilen kötü tavsiyelerin bazılarını önleyeceksiniz. – fearofawhackplanet

İlgili konular