Wednesday, 3 April 2013

IMP Calling a Stored Procedure using Asp.Net, C#.Net and Sqlserver


Calling a Stored Procedure using Asp.Net, C#.Net and Sqlserver


A stored procedure is a group of Transact-SQL statements compiled into a singleexecution plan. A stored procedure (sometimes called a proc, sproc, StoPro, StoredProc, sp or SP) is actually stored in the database data dictionary. Before starting how to call a stored procedure using c#.net in asp.net, letus take a look at the pros and cons of stored procedures
  1. Reduced server/client network traffic
  2. Stronger security
  3. Reuse of code
  4. Easier maintenance
  5. Improved performance
    Creating a Stored Procedure
    • Open Sqlserver 2005 or 2008 management studio
    • In Object Explorer, connect to an instance of Database Engine and then expand that instance.
    • Select the database on which you want to create a SP
    • Right Click on the databse select 'New Query'
    • Or you can create a SP by expanding Database and expanding Programmability then Right-click Stored Procedures, and then click New Stored Procedure. This will give you a template in which you can write a stored procedure
    • Once finished writing the stored procedure, open 'Query' menu in menu bar and click on 'F5' or simply press 'F5' to execute it.
    The example explained here uses a database named 'TestDB'. And the aspx form is used to insert a record of user into the database table 'TestDB_RegisterUser' to register a user. To create DB and for other details please see the article

    Now start writing SP as shown below.

    Create Procedure RegisterUser
        @ID nvarchar(38),
        @Username varchar(250),
        @Password varchar(20),
        @Email varchar(100),
        @Createdon DateTime,
        @Modifiedon DateTime,
        @Rowstate TinyInt
    As
    Begin
        INSERT INTO TestDB_RegisterUser (registeruser_id,registeruser_username,registeruser_email,registeruser_password
        ,registeruser_createdon,registeruser_modifiedon,registeruser_rowstate)
        VALUES (@ID,@Username,@Email,@Password,@Createdon,@Modifiedon,@Rowstate)
    End

    In the above code, 'Create Procedure' creates a SP with name 'RegisterUser'. The lines started with '@' are the parameters that passed to the SP. These are to be defined before the statement with datatypes that equivalent to column datatypes.

    Creating a Simple Registration Form
    Now in the button click event write the following code

    {
        SqlConnection con = new SqlConnection(" your sql connection");
        SqlCommand cmd = new SqlCommand();
        // create a command object 
                   
        string sql = "RegisterUser";
        //Write the stored procedure name here
        cmd.Parameters.AddWithValue("@ID", ID.text);
        cmd.Parameters.AddWithValue("@Username", UserName.Text.Trim());
        cmd.Parameters.AddWithValue("@Password", Password.Text);
        cmd.Parameters.AddWithValue("@Email", Email.Text.Trim());
        cmd.Parameters.AddWithValue("@Createdon", DateTime.Now);
        cmd.Parameters.AddWithValue("@Modifiedon", DateTime.Now);
        cmd.Parameters.AddWithValue("@Rowstate", 1);
        // add parameter to command, which will be passed to the stored procedure
        cmd.Connection = con;
        //set connection instance to command object
        cmd.CommandText = sql;
        //set the commandtext property to command object, it would be T-Sql statement, table name or a stored procedure name
        cmd.CommandType = CommandType.StoredProcedure;
        // set the command object so it knows to execute a stored procedure
        con.Open();
        try
        {
            cmd.ExecuteNonQuery();
            // execute the command
            ErrorMessage.Text = "Registered successfully.";                   
        }
        catch(Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }

    No comments:

    Post a Comment