Tuesday, December 22, 2015

Client Side Validation using JavaScript in ASP.NET C#

In this article, I am going to explain how to validate value in JavaScript in ASP.NET C#.

Check Value is integer or not (like Age)

    <script type="text/javascript">
        function isNumber(evt) {
            evt = (evt) ? evt : window.event;
            var charCode = (evt.which) ? evt.which : evt.keyCode;
            if (charCode > 31 && (charCode < 48 || charCode > 57)) {
                return false;
            }
            return true;
        }
    </script>

aspx textbox

<asp:TextBox ID="txtAge" runat="server"  onkeypress="return isNumber(event)" onpaste="return false"></asp:TextBox>

onkeypress="return isNumber(event)"  allow you only enter the integer value only.

Check Value is character or not

If you want textbox only accepts the character you can use the given below function

<script type="text/javascript">
        function checkChar(e) {
            var key;
            if (e.keyCode) key = e.keyCode;
            else if (e.which) key = e.which;
            if (/[^A-Za-z0-9]/.test(String.fromCharCode(key))) {
                return false;
            }
 
        }
    </script>

aspx textbox

<asp:TextBox ID="txtchar" runat="server"   onkeypress = "return checkChar(event)"></asp:TextBox>
 
Check Value is String or not (Like Name)

If you want textbox only accepts the strings you can use the given below function

<script type="text/javascript">
        function ValidateText(evt) {
            var keyCode = (evt.which) ? evt.which : evt.keyCode
            if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode >= 123) && keyCode != 32)
                return false;
            return true;
        }
    </script>

aspx textbox

<asp:TextBox ID="txtName" runat="server"  onkeypress="return ValidateText(event)" onpaste="return false" >
</asp:TextBox>

Check validate PAN Number

<script type="text/javascript">
        function fnValidatePAN(Obj) {
            if (Obj == null) Obj = window.event.srcElement;
            if (Obj.value != "") {
                ObjVal = Obj.value;
                var panPat = /^([a-zA-Z]{5})(\d{4})([a-zA-Z]{1})$/;
                var code = /([C,P,H,F,A,T,B,L,J,G,M])/;
                var code_chk = ObjVal.substring(3, 4);
                if (ObjVal.search(panPat) == -1) {
                    alert("Invalid Pan No");
                    Obj.focus();
                    return false;
                }
 
            }
        }
    </script>

aspx textbox

<asp:TextBox ID="txtPanNumber" runat="server" MaxLength="10"  onblur="fnValidatePAN(this);" style="text-transform:uppercase"  onpaste="return false" ></asp:TextBox>

Check validate Email ID

function checkEmail(Obj) {
            if (Obj.value != "") {
                if (/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(Obj.value)) {
 
                }
                else {
 
                    alert("Enter a valid email address!")
                    Obj.focus();
                    return (false)
                }
            }
        }

aspx textbox

<asp:TextBox ID="txtEmailID" runat="server" MaxLength="50" onpaste="return false"  onblur="checkEmail(this)"></asp:TextBox>

Check at least one radio button list is checked

<script type="text/javascript">
        function EmptyData() {
            var checkData = "No";
            var Listpaytype = document.getElementById("rbtnListpaytype");
            var inputs = Listpaytype.getElementsByTagName('input');
            for (var i = 0; i < inputs.length; i++) {
                if (inputs[i].checked == true) {
                    checkData = "Yes";
                    PaymentCheckValue = inputs[i].value;
                    break;
                }
            }
            if (checkData == "No") {
                alert("Please Select At least a Gender");
                return false;
            }  
        }
</script>


aspx RadioButtonList ( when you click on button it checks at least one radio button list is cheeked or not).

<asp:RadioButtonList ID="rbtnListGendertype" runat="server" CssClass="rdolbl" RepeatDirection="Horizontal">
        <asp:ListItem>Male</asp:ListItem>
        <asp:ListItem>Female</asp:ListItem>
        <asp:ListItem>Other</asp:ListItem>       
</asp:RadioButtonList></td>
<asp:Button ID="btnCheck" runat="server" Text="Check"  OnClientClick="return EmptyData();"/>
 
Check Valid Amount or not
The given below function checks you enter the valid amount or not, it also not accepts the double dot.
<script type="text/javascript">
        function isNumberKey(evt, obj) {
 
            var charCode = (evt.which) ? evt.which : event.keyCode
            var value = obj.value;
            var dotcontains = value.indexOf(".") != -1;
            if (dotcontains)
                if (charCode == 46) return false;
            if (charCode == 46) return true;
            if (charCode > 31 && (charCode < 48 || charCode > 57))
                return false;
            return true;
        }
</script>

aspx textbox


<asp:TextBox ID="txtAmount" runat="server" onkeypress="return isNumberKey(event,this)" onpaste="return false"></asp:TextBox>

Monday, December 21, 2015

Insert xml data into SQL server 2008 using c#

In this article I am going to explain how to insert xml data into SQL using c#.

Description

In this article I take  "Data Table" and that "Data Table" convert into xml and that xml insert into SQL table using a Stored Procedure.

Firstly I created a table in SQL

CREATE TABLE Employee (
                EmpId INT identity(1, 1),
                NAME VARCHAR(50),
                MobileNo VARCHAR(13)
                )


Now Code In C# to create a "Data Table" that return 5 rows.

//Create a DataTable that retuen 5 rows
    private DataTable GetTable()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("NAME");
        dt.Columns.Add("MobileNo");
 
        for (int i = 0; i < 5; i++)
        {
            DataRow rr = dt.NewRow();
            rr["NAME"] = "Sharad" + i.ToString();
            rr["MobileNo"] = "99787878788" + i.ToString();
            dt.Rows.Add(rr);
        }
        return dt;
 
    }

Now I code to convert "Data Table" into "XML".

//Convert DataTable to XML
    public string ConvertDataTableToXMLDataString(DataTable dataTbl)
    {
        StringBuilder XMLString = new StringBuilder();
 
        if (string.IsNullOrEmpty(dataTbl.TableName))
            dataTbl.TableName = "DataTable";
        XMLString.AppendFormat("<{0}>", dataTbl.TableName);
 
        DataColumnCollection tableColumns = dataTbl.Columns;
        foreach (DataRow row in dataTbl.Rows)
        {
            XMLString.AppendFormat("<NewDataSet>");
            foreach (DataColumn column in tableColumns)
            {
                XMLString.AppendFormat("<{1}>{0}</{1}>", row[column].ToString(), column.ColumnName);
            }
            XMLString.AppendFormat("</NewDataSet>");
        }
        XMLString.AppendFormat("</{0}>", dataTbl.TableName);
        return XMLString.ToString();
    }

Now I code to Save Xml Data in SQL table, for it I write a stored procedure.

CREATE PROC InsXmldata (@xml_data VARCHAR(MAX) = '')
AS
BEGIN
                DECLARE @XMLDocHandle INT
 
                IF @xml_data <> ''
                BEGIN
                                EXEC sp_xml_preparedocument @XMLDocHandle OUTPUT,
                                                @xml_data
 
                                INSERT INTO Employee (
                                                NAME,
                                                MobileNo
                                                )
                                SELECT  NULLIF(NAME, ''),
                                                NULLIF(MobileNo, '')
                                FROM OPENXML(@XMLDocHandle, N'/Employee/NewDataSet', 2) WITH (
                                                                NAME VARCHAR(50),
                                                                MobileNo VARCHAR(13)
                                                                )
 
                                EXEC sp_xml_removedocument @XMLDocHandle
                END --- @xml_data END
END

Now I code to Save Xml Data into Database (You can write the given below code on button click).

DataTable dt = GetTable();
        dt.TableName = "Employee";
        string XmlDoc = ConvertDataTableToXMLDataString(dt);
 
        SqlConnection con = new SqlConnection("data source=.;Database=test;uid=sa;pwd=*************;");
        con.Open();
        SqlCommand cmd = new SqlCommand("InsXmldata", con);
        cmd.Parameters.AddWithValue("@xml_data", XmlDoc);
        cmd.CommandType = CommandType.StoredProcedure;
        int i =cmd.ExecuteNonQuery();

Full aspx.cs code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
 
    //Create a DataTable that retuen 5 rows
    private DataTable GetTable()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("NAME");
        dt.Columns.Add("MobileNo");
 
        for (int i = 0; i < 5; i++)
        {
            DataRow rr = dt.NewRow();
            rr["NAME"] = "Sharad" + i.ToString();
            rr["MobileNo"] = "99787878788" + i.ToString();
            dt.Rows.Add(rr);
        }
        return dt;
 
    }
 
    //Convert DataTable to XML
    public string ConvertDataTableToXMLDataString(DataTable dataTbl)
    {
        StringBuilder XMLString = new StringBuilder();
 
        if (string.IsNullOrEmpty(dataTbl.TableName))
            dataTbl.TableName = "DataTable";
        XMLString.AppendFormat("<{0}>", dataTbl.TableName);
 
        DataColumnCollection tableColumns = dataTbl.Columns;
        foreach (DataRow row in dataTbl.Rows)
        {
            XMLString.AppendFormat("<NewDataSet>");
            foreach (DataColumn column in tableColumns)
            {
                XMLString.AppendFormat("<{1}>{0}</{1}>", row[column].ToString(), column.ColumnName);
            }
            XMLString.AppendFormat("</NewDataSet>");
        }
        XMLString.AppendFormat("</{0}>", dataTbl.TableName);
        return XMLString.ToString();
    }
    protected void BtnSaveXmlData_Click(object sender, EventArgs e)
    {
 
        try
        {
            DataTable dt = GetTable();
            dt.TableName = "Employee";
            string XmlDoc = ConvertDataTableToXMLDataString(dt);
 
            SqlConnection con = new SqlConnection("data source=.;Database=test;uid=sa;pwd=*************;");
            con.Open();
            SqlCommand cmd = new SqlCommand("InsXmldata", con);
            cmd.Parameters.AddWithValue("@xml_data", XmlDoc);
            cmd.CommandType = CommandType.StoredProcedure;
            int i = cmd.ExecuteNonQuery();
            if (i > 0)
            {
                lblmesg.Text = "Save Successfully";
            }
            else
            {
                lblmesg.Text = "Some Error Occured";
            }
        }
        catch(Exception ex) {
            lblmesg.Text = ex.Message.ToString();
        }
    }
}

Code of aspx page

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 
<!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">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Button ID="BtnSaveXmlData" runat="server" Text="Save"
            onclick="BtnSaveXmlData_Click" />
            <asp:Label ID="lblmesg" runat="server"></asp:Label>
    </div>
    </form>
</body>
</html>