Web.config: connection string or connection key?

Discussion in 'ASP .Net' started by rlueneberg@gmail.com, Aug 3, 2007.

  1. Guest

    Can someone explain the difference of using these functions below? And
    what is the advantage/disadvantage of each?

    static public SqlConnection GetConnectionString(string
    ConnectionStringName)
    {
    SqlConnection myConnection = new
    SqlConnection(ConfigurationManager.ConnectionStrings[ConnectionStringName].ConnectionString);
    return myConnection;
    }

    static public SqlConnection GetConnectionKey(string
    ConnectionKey)
    {
    SqlConnection myConnection = new
    SqlConnection(ConfigurationSettings.AppSettings[ConnectionKey]);
    return myConnection;
    }

    Rod
    , Aug 3, 2007
    #1
    1. Advertising

  2. The first is more structure than the second.

    The first syntax is the new ASP.NET 2.0 style of storing connection
    info and is made specifically for connections. It allows associating
    connection strings and provider names with a named connection string.
    This simplifies using the new provider factory model and programming
    in a generic way so your code is not tied to a specific database. In
    both examples you use SqlConnection directly but you can and most
    likely should be using DbConnection instead and that is more easily
    accomplished with the first configuration method than the second.

    Also the first method allows for storing encrypted connection strings
    whereas the second does not (at least not without custom encryption
    programming).

    Additionally, the first will support the new management tools for
    editing the Web.config better than the second (again, because it's
    more structured).

    HTH,

    Sam

    ------------------------------------------------------------
    We're hiring! B-Line Medical is seeking .NET
    Developers for exciting positions in medical product
    development in MD/DC. Work with a variety of technologies
    in a relaxed team environment. See ads on Dice.com.



    On Fri, 03 Aug 2007 13:55:17 -0000, wrote:

    >Can someone explain the difference of using these functions below? And
    >what is the advantage/disadvantage of each?
    >
    > static public SqlConnection GetConnectionString(string
    >ConnectionStringName)
    > {
    > SqlConnection myConnection = new
    >SqlConnection(ConfigurationManager.ConnectionStrings[ConnectionStringName].ConnectionString);
    > return myConnection;
    > }
    >
    > static public SqlConnection GetConnectionKey(string
    >ConnectionKey)
    > {
    > SqlConnection myConnection = new
    >SqlConnection(ConfigurationSettings.AppSettings[ConnectionKey]);
    > return myConnection;
    > }
    >
    >Rod
    Samuel R. Neff, Aug 3, 2007
    #2
    1. Advertising

  3. Guest

    Samuel, I don't understand how the first method is not tied to a
    specific database if in both cases you can specify a connection name.
    Can you give an example?

    One more thing: if I wanted to use a more generic method called
    GetDBConnection() what would be the best approach? I ask that because
    they use the same string parameter.

    Rod

    On Aug 3, 11:44 am, Samuel R. Neff <> wrote:
    > The first is more structure than the second.
    >
    > The first syntax is the new ASP.NET 2.0 style of storing connection
    > info and is made specifically for connections. It allows associating
    > connection strings and provider names with a named connection string.
    > This simplifies using the new provider factory model and programming
    > in a generic way so your code is not tied to a specific database. In
    > both examples you use SqlConnection directly but you can and most
    > likely should be using DbConnection instead and that is more easily
    > accomplished with the first configuration method than the second.
    >
    > Also the first method allows for storing encrypted connection strings
    > whereas the second does not (at least not without custom encryption
    > programming).
    >
    > Additionally, the first will support the new management tools for
    > editing the Web.config better than the second (again, because it's
    > more structured).
    >
    > HTH,
    >
    > Sam
    >
    > ------------------------------------------------------------
    > We're hiring! B-Line Medical is seeking .NET
    > Developers for exciting positions in medical product
    > development in MD/DC. Work with a variety of technologies
    > in a relaxed team environment. See ads on Dice.com.
    >
    > On Fri, 03 Aug 2007 13:55:17 -0000, wrote:
    > >Can someone explain the difference of using these functions below? And
    > >what is the advantage/disadvantage of each?

    >
    > > static public SqlConnection GetConnectionString(string
    > >ConnectionStringName)
    > > {
    > > SqlConnection myConnection = new
    > >SqlConnection(ConfigurationManager.ConnectionStrings[ConnectionStringName].ConnectionString);
    > > return myConnection;
    > > }

    >
    > > static public SqlConnection GetConnectionKey(string
    > >ConnectionKey)
    > > {
    > > SqlConnection myConnection = new
    > >SqlConnection(ConfigurationSettings.AppSettings[ConnectionKey]);
    > > return myConnection;
    > > }

    >
    > >Rod
    , Aug 3, 2007
    #3
  4. I'm sorry I wasn't clear when I said specific database I meant
    database engine. ADO.NET simplifies writing code that works with
    MSSQL, MSAccess, Oracle, and any other database engine with an ADO.NET
    provider.

    A more generic example would be

    ConnectionStringSettings info =
    ConfigurationManager.ConnectionStrings["mydb"];

    DbProviderFactory factory =
    DbProviderFactories.GetFactory(info.ProviderName)

    DbConnection cnn = factory.CreateConnection();
    cnn.ConnectionString = info.ConnectionString;


    The key point is that if you switch from MSSQL to Oracle or even from
    MSSQL to MSSQL with a 3rd party provider (there are some) then you
    don't have to change your code, just your config.

    Doesn't help you if you have dbms-specific sql, but it's a good start.

    HTH,

    Sam

    ------------------------------------------------------------
    We're hiring! B-Line Medical is seeking .NET
    Developers for exciting positions in medical product
    development in MD/DC. Work with a variety of technologies
    in a relaxed team environment. See ads on Dice.com.


    On Fri, 03 Aug 2007 18:37:01 -0000, wrote:

    >Samuel, I don't understand how the first method is not tied to a
    >specific database if in both cases you can specify a connection name.
    >Can you give an example?
    >
    >One more thing: if I wanted to use a more generic method called
    >GetDBConnection() what would be the best approach? I ask that because
    >they use the same string parameter.
    >
    >Rod
    Samuel R. Neff, Aug 3, 2007
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Michelle A.
    Replies:
    0
    Views:
    539
    Michelle A.
    Aug 20, 2003
  2. Benny Ng
    Replies:
    9
    Views:
    9,879
    Benny Ng
    Oct 13, 2005
  3. Replies:
    0
    Views:
    764
  4. CSharpner
    Replies:
    0
    Views:
    976
    CSharpner
    Apr 9, 2007
  5. M P
    Replies:
    1
    Views:
    435
Loading...

Share This Page