|
Users of older versions of ASP frequently stored the connection string right in the ASP page. The connection string holds information about the data server name and (in the case of SQL authentication) the user account, sometimes even including the password. Having that information in the code is bad practice for two reasons.
- The information can be seen by every programmer on the design team (however, it cannot be seen on a browser by site visitors).
- It must be maintained or updated in every place throughout the Web site that has a connection. Updating passwords becomes an onerous job.
ASP.NET 2.0 gives you the option to move the connection string to a connectionStrings section of the web.config file, give the string a name, and encrypt it. Then ASP.NET 2.0 pages just refer to the connection string by name.
Adding the connection string in the web.config
Open the web.config that is located in the root of your web site. Find the section delimited by <connectionStrings> (or add it yourself if it is not there), and type an <add> tag, as follows. The tag has following three attributes:
- Name: The name attribute is just an ordinary name for the connection string that you will use within your pages.
- ConnectionString: The connectionString attribute should be set to the full connection string value for connecting to your database.
- Provider Name: This specify whether you are connecting to Sql Server or to Oracle or to any other database.
For Example:-
<connectionStrings>
<add name = " pubsConnectionString " connectionString = " Data Source=localhost;Initial Catalog=pubs;User ID=sa;Password=sa " providerName = " System.Data.SqlClient " />
</connectionStrings>
Example: Demonstrate Web.Config with aspx page
Web.Config
<? xml version = " 1.0 " ?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration>
<appSettings/>
<connectionStrings>
<connectionStrings>
<add name="pubsConnectionString" connectionString="Data Source=localhost;Initial Catalog=pubs;User ID=sa;Password=sa" providerName ="System.Data.SqlClient" />
</connectionStrings>
<add name="northwindConnectionString" connectionString="DataSource=localhost;Initial Catalog=northwind;user id=sa;pwd=sa "/>
</connectionStrings>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="true"/>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Windows"/>
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly"
defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
ConnectionStringINWebConfig.aspx
<%@ Page Language="C#" AutoEventWireup="true" Code ="FileConnectionStringINWebConfig.aspx.cs" Inherits="ConnectionStringINWebConfig" %>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server">
</head><body>
<form id="form1" runat ="server">
<div><strong> Accessing Connection String From Web.Config </strong> <br/><br/>
<table border ="0">
<tr><td>
<asp:Label ID ="lblProductName" runat ="server" Font-Italic ="True" Text ="Product Name"></ asp : Label >
</td><td>
<asp:TextBox ID ="txtProductName" runat ="server" BackColor ="Yellow">
</asp:TextBox>
</td><td style ="width: 3px">
</td></tr>
<tr><td>
<asp:LabelID ="lblProdDesc" runat ="server" Font-Italic ="True" Text ="Product Description"></asp:Label>
</td><td>
<asp:TextBox ID ="txtProductDesc" runat ="server" BackColor ="Yellow">
</asp:TextBox></td >
<td style="width: 3px">
</td></tr>
<tr><td>
<asp:Label ID ="lblCategoryName" runat ="server" Font-Italic ="True" Text ="Category Name"></asp:Label>
</td><td>
<asp:TextBox ID ="txtCategoryName" runat ="server" BackColor ="Yellow">
</asp:TextBox>
</td><td style ="width: 3px">
</td></tr>
<tr><td style ="height: 26px">
<asp:Label ID ="lblQuantity" runat ="server" Font-Italic ="True" Text ="ProductQuantity">
</asp:Label>
</td><td style ="height: 26px">
<asp:TextBox ID ="txtQuantity" runat ="server" BackColor ="Yellow">
</asp:TextBox>
</ td >< td style ="width: 3px; height: 26px"></td></tr>
<tr><td></td><td>
<asp:Button ID ="btnSubmit" runat ="server" OnClick ="btnSubmit_Click" Text ="Submit"/>
</td><td style ="width: 3px"></td></tr><tr><td>
</td><td></td><td style ="width: 3px"></td></tr>
<tr><td></td><td></td>
<td style ="width: 3px"></td></tr>
<tr><td style ="height: 19px"></td> <td style ="height: 19px"></td>
<td style ="width: 3px; height: 19px;"></td></tr>
<tr><td></td><td></td><td style ="width: 3px"></td></tr>
<tr><td></td><td></td><td style ="width: 3px"></td></tr></table>
</div>
</form></body>
</html>
ConnectionStringINWebConfig.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class ConnectionStringINWebConfig : System.Web.UI. Page
{
protected void btnSubmit_Click( object sender, EventArgs e)
{
String strConn = WebConfigurationManager .ConnectionStrings [ "northwindConnectionString" ].ConnectionString;
SqlConnection conn = new SqlConnection (strConn);
SqlCommand cmd = new SqlCommand ();
cmd.Connection = conn;
string strQuery = "Insert into tblproduct (productName,prodDesc,CategoryName,ProductQuantity) values (" + "'" + txtProductName.Text + "'" + "," + "'" + txtProductDesc.Text + "'" + "," + "'" + txtCategoryName.Text + "'" + "," + Int32 .Parse(txtQuantity.Text) + ")" ;
cmd.CommandText = strQuery;
cmd.CommandType = CommandType .Text;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
Response.Write( "Data Inserted Successfully !!!!" );
}
}
|