我想在一般处理程序加一个工厂模式

ajax+一般处理程序+工厂模式来实现对sql数据库增删改。
可行吗?
ProcessRequest这里接受的变量,在工厂模式那些类里怎么调用。
public class Handler1 : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        string leiXing=context.Request.QueryString["leiXing"];
        string name = context.Request.QueryString["name"];
        string id=context.Request.QueryString["id"];
        string phone=context.Request.QueryString["phone"];
        string years=context.Request.QueryString["years"];
        //链接数据库
        SqlConnection sqlcon = new SqlConnection("Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=zengShanGai;Data Source=.");
        sqlcon.Open();
        SqlCommand sqlcmd = new SqlCommand();
        sqlcmd.Connection = sqlcon;
        sqlcmd.CommandType = CommandType.Text;

        if(leiXing=="onLoad")
        {              
        }
        else if(leiXing=="add")
        {
            sqlcmd.CommandText = "insert into info(name,phone,years) values('" + name + "','" + phone + "'," + int.Parse(years) + ")";
            sqlcmd.ExecuteNonQuery();
        }
        else if(leiXing == "delete")
        {
            sqlcmd.CommandText = "delete from info where id=" + int.Parse(id);
            sqlcmd.ExecuteNonQuery();
        }
        else if (leiXing == "change")
        {
            sqlcmd.CommandText = "update info set name='" + name + "',phone='" + phone + "',years=" + int.Parse(years) + "where id=" + int.Parse(id);
            sqlcmd.ExecuteNonQuery();
        }
        string strcmd = "select * from info";

        SqlDataAdapter sqldat = new SqlDataAdapter(strcmd, sqlcon);
        DataSet sqldas = new DataSet();
        sqldat.Fill(sqldas);
        StringBuilder sb = new StringBuilder();
        sb.Append("[");
        for (int i = 0; i < sqldas.Tables[0].Rows.Count; i++)
        {
            sb.Append("{'id':" + sqldas.Tables[0].Rows[i]["id"] + ",'name':'" + sqldas.Tables[0].Rows[i]["name"] + "','phone':'" + sqldas.Tables[0].Rows[i]["phone"] + "','years':" + sqldas.Tables[0].Rows[i]["years"] + "},");

        }
        sb.Append("]");
        context.Response.Write(sb);           
        sqlcon.Close();
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}
//抽象工厂
public abstract class Creator
{
    public abstract Sql CreateSql();
}
//具体工厂 增加操作的创建者
public class SqlAddCreator : Creator
{
    public override Sql CreateSql()
    {
        return new ConcreteSqlAdd();
    }
}
//具体工厂 删除操作创建者
public class SqlDelCreator : Creator
{
    public override Sql CreateSql()
    {
        return new ConcreteSqlDel();
    }
}
//具体工厂 修改操作创建者
public class SqlUpdCreator : Creator
{
    public override Sql CreateSql()
    {
        return new ConcreteSqlUpd();
    }
}
//抽象操作
public abstract class Sql
{
    public abstract void Opration();
}
//具体操作 增加
public class ConcreteSqlAdd : Sql
{
    public override void Opration()
    {
        SqlConnection sqlcon = new SqlConnection("Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=zengShanGai;Data Source=.");
        sqlcon.Open();
        SqlCommand sqlcmd = new SqlCommand();
        sqlcmd.Connection = sqlcon;
        sqlcmd.CommandType = CommandType.Text;
        sqlcmd.CommandText = "insert into info(name,phone,years) values('" + name + "','" + phone + "'," + int.Parse(years) + ")";
        sqlcmd.ExecuteNonQuery();
    }
}
//具体操作 删除
public class ConcreteSqlDel : Sql
{
    public override void Opration()
    {
        throw new NotImplementedException();
    }
}
//具体操作 修改
public class ConcreteSqlUpd : Sql
{
    public override void Opration()
    {
        throw new NotImplementedException();
    }
}