Parameterized Queries
Parameterized Queries are those in which values are passed using SQL Parameters.
Benefits
The prime benefit of parameterized Queries is to protect the database from SQL Injection.
Connection String
Set the connection string in Web.Config
<connectionStrings>
<add name="conString"
connectionString="Data Source=.\SQLEXPRESS;database=Northwind;
AttachDbFileName=|DataDirectory|\NORTHWND.MDF;Integrated Security=true"/>
</connectionStrings>
Namespaces
You will need to import the following two namespaces
C#
using System.Data;
using System.Data.SqlClient;
VB
Imports System.Data
Imports System.Data.SqlClient
Select Queries
The following function will be used to execute the select queries.
C#
private DataTable GetData(SqlCommand cmd)
{
DataTable dt = new DataTable ();
String strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["conString"].
ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
SqlDataAdapter sda = new SqlDataAdapter();
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
try
{
con.Open();
sda.SelectCommand = cmd;
sda.Fill(dt);
return dt;
}
catch (Exception ex)
{
Response.Write(ex.Message);
return null;
}
finally
{
con.Close();
sda.Dispose();
con.Dispose();
}
}
VB.Net
Public Function GetData(ByVal cmd As SqlCommand) As DataTable
Dim dt As New DataTable
Dim strConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings("conString").
ConnectionString
Dim con As New SqlConnection(strConnString)
Dim sda As New SqlDataAdapter
cmd.CommandType = CommandType.Text
cmd.Connection = con
Try
con.Open()
sda.SelectCommand = cmd
sda.Fill(dt)
Return dt
Catch ex As Exception
Response.Write(ex.Message)
Return Nothing
Finally
con.Close()
sda.Dispose()
con.Dispose()
End Try
End Function
The function executes the SQL Query and then returns the DataTable.
Execute a Simple Select Query
C#
string strQuery = "select * from customers";
SqlCommand cmd = new SqlCommand(strQuery);
DataTable dt = GetData(cmd);
GridView1.DataSource = dt;
GridView1.DataBind();
VB.Net
Dim strQuery As String = "select * from customers"
Dim cmd As New SqlCommand(strQuery)
Dim dt As DataTable = GetData(cmd)
GridView1.DataSource = dt
GridView1.DataBind()
The above code executes the Query and binds the result to the GridView.
Execute SQL Query with Filter Condition
C#
string strQuery = "select * from customers where city = @city";
SqlCommand cmd = new SqlCommand(strQuery);
cmd.Parameters.AddWithValue("@city", txtCity.Text.Trim());
DataTable dt = GetData(cmd);
GridView1.DataSource = dt;
GridView1.DataBind();
VB.Net
Dim strQuery As String = "select * from customers where city = @city"
Dim cmd As New SqlCommand(strQuery)
cmd.Parameters.AddWithValue("@city", txtCity.Text.Trim)
Dim dt As DataTable = GetData(cmd)
GridView1.DataSource = dt
The above query executes the SQL Query that filters the record based on City.
You will notice that the @city which is the parameter for the query.
cmd.Parameters.AddWithValue("@city", txtCity.Text.Trim())
The statement assigns the value of textbox txtCity to the parameter @City
Insert - Update Queries
The following functions will be used to execute Insert and Update Queries.
C#
private Boolean InsertUpdateData(SqlCommand cmd)
{
String strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["conString"].
ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
try
{
con.Open();
cmd.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
Response.Write(ex.Message);
return false;
}
finally
{
con.Close();
con.Dispose();
}
}
VB.Net
Public Function InsertUpdateData(ByVal cmd As SqlCommand) As Boolean
Dim strConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings("conString").
ConnectionString
Dim con As New SqlConnection(strConnString)
cmd.CommandType = CommandType.Text
cmd.Connection = con
Try
con.Open()
cmd.ExecuteNonQuery()
Return True
Catch ex As Exception
Response.Write(ex.Message)
Return False
Finally
con.Close()
con.Dispose()
End Try
End Function
Execute Insert Queries
C#
string strQuery;
SqlCommand cmd;
strQuery = "insert into customers (CustomerID, CompanyName) values(@CustomerID, @CompanyName)";
cmd = new SqlCommand(strQuery);
cmd.Parameters.AddWithValue("@CustomerID", "A234");
cmd.Parameters.AddWithValue("@CompanyName", "DCB");
InsertUpdateData(cmd);
VB.Net
Dim strQuery As String
Dim cmd As SqlCommand
strQuery = "insert into customers (CustomerID, CompanyName) values(@CustomerID, @CompanyName)"
cmd = New SqlCommand(strQuery)
cmd.Parameters.AddWithValue("@CustomerID", "AZNL")
cmd.Parameters.AddWithValue("@CompanyName", "ABC")
InsertUpdateData(cmd)
Executing Update Queries
C#
string strQuery;
SqlCommand cmd;
strQuery = "update customers set CompanyName=@CompanyName where CustomerID=@CustomerID";
cmd = new SqlCommand(strQuery);
cmd.Parameters.AddWithValue("@CustomerID", "A234");
cmd.Parameters.AddWithValue("@CompanyName", "BCD");
InsertUpdateData(cmd);
VB.Net
Dim strQuery As String
Dim cmd As SqlCommand
strQuery = "update customers set CompanyName=@CompanyName where CustomerID=@CustomerID"
cmd = New SqlCommand(strQuery)
cmd.Parameters.AddWithValue("@CustomerID", "AZNL")
cmd.Parameters.AddWithValue("@CompanyName", "XYZ")
InsertUpdateData(cmd)
You can download the Sample source code in VB.Net And C# here
Download Code (536.56 kb)