Use the below free web-service to get the country name using IP Address.
http://www.webservicex.net/geoipservice.asmx?wsdl
Add the service to your web or windows application and name the service
as say for eg. locationFinder
Now access it in your code as
// Create instance for the service
LocationFinder.GeoIPService service = new LocationFinder.GeoIPService();
// Gets the country name.
string country = service.GetGeoIP("216.241.xxx.xx").CountryName;
To get the ipAddress of the Client machine use
String ipAddress = Request.UserHostAddress.ToString();
Aug 26, 2010
Aug 11, 2010
Simple login page using Forms's Authentication + Asp.Net + C#
Login Page Implementation[Forms Authentication] :
Login page implementation is a basic need in most applications.
Now lets see a simple implementation of the Login Page in asp.net.
Create a page named Login.aspx and add a table like
Login:
<table align="center">
<tr>
<td>
UserName :</td>
<td>
<asp:TextBox ID="txtUserName" runat="server" /></td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1"
ControlToValidate="txtUserName"
Display="Dynamic"
ErrorMessage="Please Enter User Name"
runat="server" />
</td>
</tr>
<tr>
<td>
Password :</td>
<td>
<asp:TextBox ID="txtPassword" TextMode="Password"
runat="server" />
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2"
ControlToValidate="txtPassword"
ErrorMessage="Please Enter Password."
runat="server" />
</td>
</tr>
<tr>
<td colspan="3" align="left">
<asp:Button ID="Submit1" OnClick="Logon_Click" Text="Log On"
runat="server" />
</td>
</tr>
<tr>
<td colspan="3">
<p>
<asp:Label ID="Msg" ForeColor="red" runat="server" />
</p>
</td>
</tr>
</table>
Now add the code-behind for login page like
// if you have more users then store the username and
// password in back-end database and perform the check
if ((txtUserName.Text == "mukunda") && (txtPassword.Text == "easyone1"))
{
// This statement will redirect to start page automatically.
FormsAuthentication.RedirectFromLoginPage
(txtUserName.Text, false);
}
else
{
// to show error message for invalid login.
Msg.Text = "Invalid credentials. Please try again.";
}
To make the above code work we need to add the following to web config
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH">
</forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
inside <system.web> tag.
And in the Main page you can access the logged user name and
show it in a label like
lblEmpID.Text = Context.User.Identity.Name;
LogOut :
To log out the current user you need to add a link button in main page
<asp:LinkButton ID="Submit1" runat="server"
OnClick="Signout_Click">Sign Out</asp:LinkButton>
Code-Behind:
/// <summary>
/// event for signingout the current page & redirect to Login page
/// </summary>
protected void Signout_Click(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
Response.Redirect("Login.aspx");
}
Now a simple login implementation using Forms Authentication is done!
Login page implementation is a basic need in most applications.
Now lets see a simple implementation of the Login Page in asp.net.
Create a page named Login.aspx and add a table like
Login:
<table align="center">
<tr>
<td>
UserName :</td>
<td>
<asp:TextBox ID="txtUserName" runat="server" /></td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1"
ControlToValidate="txtUserName"
Display="Dynamic"
ErrorMessage="Please Enter User Name"
runat="server" />
</td>
</tr>
<tr>
<td>
Password :</td>
<td>
<asp:TextBox ID="txtPassword" TextMode="Password"
runat="server" />
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2"
ControlToValidate="txtPassword"
ErrorMessage="Please Enter Password."
runat="server" />
</td>
</tr>
<tr>
<td colspan="3" align="left">
<asp:Button ID="Submit1" OnClick="Logon_Click" Text="Log On"
runat="server" />
</td>
</tr>
<tr>
<td colspan="3">
<p>
<asp:Label ID="Msg" ForeColor="red" runat="server" />
</p>
</td>
</tr>
</table>
Now add the code-behind for login page like
// if you have more users then store the username and
// password in back-end database and perform the check
if ((txtUserName.Text == "mukunda") && (txtPassword.Text == "easyone1"))
{
// This statement will redirect to start page automatically.
FormsAuthentication.RedirectFromLoginPage
(txtUserName.Text, false);
}
else
{
// to show error message for invalid login.
Msg.Text = "Invalid credentials. Please try again.";
}
To make the above code work we need to add the following to web config
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH">
</forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
inside <system.web> tag.
And in the Main page you can access the logged user name and
show it in a label like
lblEmpID.Text = Context.User.Identity.Name;
LogOut :
To log out the current user you need to add a link button in main page
<asp:LinkButton ID="Submit1" runat="server"
OnClick="Signout_Click">Sign Out</asp:LinkButton>
Code-Behind:
/// <summary>
/// event for signingout the current page & redirect to Login page
/// </summary>
protected void Signout_Click(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
Response.Redirect("Login.aspx");
}
Now a simple login implementation using Forms Authentication is done!
Aug 10, 2010
Simple Add,Edit,Update and Delete operations in GridView + Asp.net 3.5
Lets first create a table in MSAccess like below named Customer
Aspx Page:
Drag a gridview and fields and event as given below
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ID" onrowcommand="GridView1_RowCommand"
onrowdeleting="GridView1_RowDeleting"
onrowediting="GridView1_RowEditing"
onrowdatabound="GridView1_RowDataBound"
onrowupdating="GridView1_RowUpdating">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="true"/>
<asp:TemplateField HeaderText="Name">
<EditItemTemplate>
<asp:TextBox ID="txtTName" runat="server"
Text='<%# Bind("Name") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Age">
<EditItemTemplate>
<asp:TextBox ID="txtTAge" runat="server"
Text='<%# Bind("Age") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Age") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowDeleteButton="True" />
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
.cs page:
// Create a connection to Access Database.
OleDbConnection aConnection = new OleDbConnection
("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\CustomerInfo.mdb");
// Binds grid on page load.
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
bindGrid();
}
}
// Method to bind grid
private void bindGrid()
{
string query = string.Empty;
OleDbCommand cmd = null;
OleDbDataAdapter adap = null;
DataSet ds = new DataSet();
try
{
aConnection.Open();
query = "SELECT * FROM Customer";
cmd = new OleDbCommand(query, aConnection);
adap = new OleDbDataAdapter(cmd);
adap.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
catch (Exception)
{
throw;
}
finally
{
aConnection.Close();
}
// To make the grid editable when edit button clicked
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bindGrid();
}
// Performs Delete and Update operations
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int cusID = 0;
GridView gv = (GridView)sender;
// to find the Current ID selected.
cusID = Convert.ToInt32(
gv.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text);
if (e.CommandName == "Delete")
{
DeleteCustomer(cusID);
}
if (e.CommandName == "Update")
{
// to find the edit text box value.
TextBox txtname = GridView1.Rows[Convert.ToInt32(e.CommandArgument)]
.FindControl("txtTName") as TextBox;
TextBox txtage = GridView1.Rows[Convert.ToInt32(e.CommandArgument)].
FindControl("txtTAge") as TextBox;
updateCustomer(txtname.Text, txtage.Text, cusID);
}
}
//To create an Alert before deleting the row in gridview.
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
foreach (Control control in e.Row.Cells[3].Controls)
{
LinkButton DeleteButton = control as LinkButton;
if (DeleteButton != null && DeleteButton.Text == "Delete")
{
DeleteButton.OnClientClick =
"return(confirm('Are you sure you want to delete this record?'))";
}
}
}
// Method to Delete Customer Information
private void DeleteCustomer(int ID)
{
string query = string.Empty;
OleDbCommand cmd = null;
try
{
query = "DELETE FROM Customer WHERE ID=" + ID;
cmd = new OleDbCommand(query, aConnection);
aConnection.Open();
cmd.ExecuteNonQuery();
aConnection.Close();
bindGrid();
}
catch (Exception)
{
throw;
}
finally
{
}
}
// Method to update customer with edit values.
private void updateCustomer(string name, string age, int ID)
{
string query = string.Empty;
OleDbCommand cmd = null;
try
{
query = "UPDATE Customer SET Name='" + name + "',Age='" +
age + "' WHERE ID=" + ID;
cmd = new OleDbCommand(query, aConnection);
aConnection.Open();
cmd.ExecuteNonQuery();
aConnection.Close();
GridView1.EditIndex = -1;
bindGrid();
}
catch (Exception)
{
throw;
}
}
Above given is the code used to perform Edit,Update
and delete operations in a gridview.
Customer Table |
Aspx Page:
Drag a gridview and fields and event as given below
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ID" onrowcommand="GridView1_RowCommand"
onrowdeleting="GridView1_RowDeleting"
onrowediting="GridView1_RowEditing"
onrowdatabound="GridView1_RowDataBound"
onrowupdating="GridView1_RowUpdating">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="true"/>
<asp:TemplateField HeaderText="Name">
<EditItemTemplate>
<asp:TextBox ID="txtTName" runat="server"
Text='<%# Bind("Name") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Age">
<EditItemTemplate>
<asp:TextBox ID="txtTAge" runat="server"
Text='<%# Bind("Age") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Age") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowDeleteButton="True" />
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
.cs page:
// Create a connection to Access Database.
OleDbConnection aConnection = new OleDbConnection
("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\CustomerInfo.mdb");
// Binds grid on page load.
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
bindGrid();
}
}
// Method to bind grid
private void bindGrid()
{
string query = string.Empty;
OleDbCommand cmd = null;
OleDbDataAdapter adap = null;
DataSet ds = new DataSet();
try
{
aConnection.Open();
query = "SELECT * FROM Customer";
cmd = new OleDbCommand(query, aConnection);
adap = new OleDbDataAdapter(cmd);
adap.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
catch (Exception)
{
throw;
}
finally
{
aConnection.Close();
}
// To make the grid editable when edit button clicked
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bindGrid();
}
// Performs Delete and Update operations
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int cusID = 0;
GridView gv = (GridView)sender;
// to find the Current ID selected.
cusID = Convert.ToInt32(
gv.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text);
if (e.CommandName == "Delete")
{
DeleteCustomer(cusID);
}
if (e.CommandName == "Update")
{
// to find the edit text box value.
TextBox txtname = GridView1.Rows[Convert.ToInt32(e.CommandArgument)]
.FindControl("txtTName") as TextBox;
TextBox txtage = GridView1.Rows[Convert.ToInt32(e.CommandArgument)].
FindControl("txtTAge") as TextBox;
updateCustomer(txtname.Text, txtage.Text, cusID);
}
}
//To create an Alert before deleting the row in gridview.
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
foreach (Control control in e.Row.Cells[3].Controls)
{
LinkButton DeleteButton = control as LinkButton;
if (DeleteButton != null && DeleteButton.Text == "Delete")
{
DeleteButton.OnClientClick =
"return(confirm('Are you sure you want to delete this record?'))";
}
}
}
// Method to Delete Customer Information
private void DeleteCustomer(int ID)
{
string query = string.Empty;
OleDbCommand cmd = null;
try
{
query = "DELETE FROM Customer WHERE ID=" + ID;
cmd = new OleDbCommand(query, aConnection);
aConnection.Open();
cmd.ExecuteNonQuery();
aConnection.Close();
bindGrid();
}
catch (Exception)
{
throw;
}
finally
{
}
}
// Method to update customer with edit values.
private void updateCustomer(string name, string age, int ID)
{
string query = string.Empty;
OleDbCommand cmd = null;
try
{
query = "UPDATE Customer SET Name='" + name + "',Age='" +
age + "' WHERE ID=" + ID;
cmd = new OleDbCommand(query, aConnection);
aConnection.Open();
cmd.ExecuteNonQuery();
aConnection.Close();
GridView1.EditIndex = -1;
bindGrid();
}
catch (Exception)
{
throw;
}
}
Above given is the code used to perform Edit,Update
and delete operations in a gridview.
Aug 6, 2010
How to open Visual Studio 2010 project in Visual Studio 2008
Steps to Open VS2010 project using VS2008:
· Open the .sln file corresponding to the Project to be converted with Notepad
· Locate the following line: Microsoft Visual Studio Solution File, Format Version 11.00
· Replace 11.00 with 10.00
· Locate the following line: # Visual Studio 10
· Replace 10 with 2008
· Save the File
· Delete the .cache files existing in the following paths:
o obj/debug
o obj/release
· Open the project with Visual Studio 2008
· Build the project with Visual Studio 2008
Reference: http://dougortiz.blogspot.com/2009/05/converting-visual-studio-2010-project.html
Reference: http://dougortiz.blogspot.com/2009/05/converting-visual-studio-2010-project.html
Aug 5, 2010
How to use dynamic column name in update query + SQL SERVER
This is a General Requirement that we may be in a need to update
the table using a dynamic column name.
the table using a dynamic column name.
Say for Eg:
Here my case is ,
I need to update a table, when user reaches different stage of the Ordering Proces.
So i have columns as name, age, stage1,stage2,stage3 etc upto 8 stages.
When user enter each stage i will be calling this procedure with stage
as parameter like 1,2,3 etc.. up to 8.
as parameter like 1,2,3 etc.. up to 8.
CREATE PROCEDURE [dbo].[UserTracking_usp]
(
@TrackID int
@Stage varchar(10)
)
AS
BEGIN
// to store dynamic column name
DECLARE @CurrentStage varchar(50)
DECLARE @UpdateSQL varchar(200)
SET @CurrentStage =
CASE
WHEN @Stage='2' THEN 'Stage2'
WHEN @Stage='3' THEN 'Stage3'
WHEN @Stage='4' THEN 'Stage4'
WHEN @Stage='5' THEN 'Stage5'
WHEN @Stage='6' THEN 'Stage6'
WHEN @Stage='7' THEN 'Stage7'
WHEN @Stage='8' THEN 'Stage8'
END
SET @UpdateSQL =
'UPDATE User_Tracking SET ' + convert(varchar, @CurrentStage) + '= 1
'UPDATE User_Tracking SET ' + convert(varchar, @CurrentStage) + '= 1
WHERE
User_Tracking_ID = ' + convert(varchar, @TrackID);
EXEC (@UpdateSQL)
END So this procedure will examine which column name should be updated
using a case statement and substitute as a dynamic column name for
update query as shown above.
In the same way one can use for select,delete statements etc..
Subscribe to:
Posts (Atom)