Search This Blog

Saturday 28 February 2015

How to return Output parameter from Stored Procedure in ASP.Net using C#

Step 1:- Create table

create table EmpTable
(
       EmpId int identity,
       EmpName varchar(50)
)

Step 2:- Create Procedure

create proc  getOutputValue
@EmpName varchar(50),
@LastIdentity int output
as
begin
       insert into EmpTable(EmpName)
       values(@EmpName)

       set @LastIdentity = @@identity
end

Step 3:- Get output parameter value in SQL Server

declare @LastIdentity int
exec getOutputValue 'Employee 4', @LastIdentity output
print @LastIdentity


Step 4:- Get output parameter value in ASP.Net using C#

Step 1:- Default.aspx Code

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Demo.Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="txtEmpName" runat="server"></asp:TextBox>
            <br />
            <asp:Button ID="btnGetOutputValue" runat="server" Text="Get Output Value" OnClick="btnGetOutputValue_Click" />
            <br />
            <asp:Label ID="lblMsg" runat="server" Text=""></asp:Label>
        </div>
    </form>
</body>
</html>

Step 2:- Default.aspx.cs Code

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Demo
{
    public partial class Default : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void btnGetOutputValue_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(@"server=192.168.1.1; database=TEST; uid=sa; pwd=admin@123;");
            SqlCommand com = new SqlCommand();
            com.CommandText = "getOutputValue";
            com.CommandType = CommandType.StoredProcedure;
            com.Parameters.AddWithValue("@EmpName", txtEmpName.Text);
            com.Parameters.Add("@LastIdentity",SqlDbType.Int);
            com.Parameters["@LastIdentity"].Direction = ParameterDirection.Output;
            com.Connection = con;
            con.Open();
            com.ExecuteNonQuery();
            con.Close();

            lblMsg.Text = "Last Identity " + com.Parameters["@LastIdentity"].Value;
        }
    }
}

Monday 23 February 2015

How to retrieve read-only textbox's value in the code behind? Or Get value of ReadOnly TextBox in ASP.Net?

Step 1:- Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Get value of ReadOnly TextBox in ASP.Net .aspx.cs" Inherits="Demo.Get_value_of_ReadOnly_TextBox_in_ASP_Net" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function SetTheValue() {
            var jNum1 = document.getElementById("<%=txtNum1.ClientID%>").value;
            var jNum2 = document.getElementById("<%=txtNum2.ClientID%>").value;
            var jSum = document.getElementById("<%=txtSum.ClientID%>");

            if (jNum1 == "" || isNaN(jNum1)) {
                alert("Input String is Wrong.")
                document.getElementById("<%=txtNum1.ClientID%>").focus();
                return false;
            }

            if (jNum2 == "" || isNaN(jNum2)) {
                alert("Input String is Wrong.")
                document.getElementById("<%=txtNum2.ClientID%>").focus();
                return false;
            }

            document.getElementById("<%=txtSum.ClientID%>").value = parseInt(jNum1) + parseInt(jNum2);

            return true;
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <table>
                <tr>
                    <td>Enter the Num1</td>
                    <td>
                        <asp:TextBox ID="txtNum1" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>Enter the Num2</td>
                    <td>
                        <asp:TextBox ID="txtNum2" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td>Total (Num1 + Num2)</td>
                    <td>
                        <asp:TextBox ID="txtSum" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <asp:Button ID="btnCalculate" runat="server" Text="Calculate the Sum using javascript" />
                        <asp:Button ID="btnGet" runat="server" Text="Get the Value" OnClick="btnGet_Click" />
                    </td>
                </tr>
            </table>
        </div>
    </form>
</body>

</html>

Step 2:-Default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Demo
{
    public partial class Get_value_of_ReadOnly_TextBox_in_ASP_Net : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                btnCalculate.Attributes.Add("onclick""return SetTheValue()");
                txtSum.Attributes.Add("readonly""readonly");
            }
        }

        protected void btnGet_Click(object sender, EventArgs e)
        {
            Response.Write("Calculated Value -" + txtSum.Text);
        }
    }
}


Note :-

Instead of giving ReadOnly="true” design time to the TextBox in .aspx page
<asp:TextBox ID="txtSum" runat="server" ReadOnly="true"></asp:TextBox>
Use the TextBox attribute

txtSum.Attributes.Add("readonly""readonly");

in code behind i.e. .aspx.cs page