简体   繁体   中英

Create public method to call a stored procedure in ASP.NET using C#

I've created a public method in a class to call a query in any web page or web application.

The problem is I also want to create aa general public method in a class to call a stored procedure in any web page or web application.

I can call a query in any web page or web application using this.

clasCon Crud = new clasCon();

Crud.exeQry("Insert into names(fName,mName,lName)values('" + txtFname.Text.Trim() + "','" + txtMname.Text.Trim() + "','" + txtLname.Text.Trim() + "')")

public void exeQry(string qry)
{
    try
    {
        vbcon(); // connection
        cmd = new OleDbCommand(qry, ConnS);
        cmd.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
        HttpContext.Current.Response.Write("<script>alert('Query error! 
             :" + ex.Message + "'</script>");
    }
    finally
    {
        GC.Collect();
    }
}

You need to have the method as following.

public void ExecuteProcedure(string procName, List<OleDbParameter> parameters)
{
    try
    {
        vbcon(); // connection
        cmd = new OleDbCommand(procName, ConnS);
        cmd.CommandType = CommandType. StoredProcedure;
        foreach(var parameter in parameters)
        {
            cmd.Parameters.Add(parameter);
        }
        cmd.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
        HttpContext.Current.Response.Write("<script>alert('Query error! 
         :" + ex.Message + "'</script>");
    }
    finally
    {
        GC.Collect();
    }
}

This is how you call the method

clasCon Crud = new clasCon();
var procName = "MyProcedure";
var parameters = new List<OleDbParameter>();
parameters.Add(new OleDbParameter("@FName", txtFname.Text.Trim()));
parameters.Add(new OleDbParameter("@MName", txtMname.Text.Trim()));
parameters.Add(new OleDbParameter("@LName", txtLname.Text.Trim()));

Crud.ExecuteProcedure(procName, parameters);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM