asp.net 自己封装数据库操作一个类中一个自定义方法Execute(),非常实用,省去了麻烦的中间过程,动态参数

此方法用于执行数据库命令

public Object Execute(string[] prams, string cmdType)

此方法可以执行四种常用的增删改查的sql数据库命令

调用示例:

 

string[] prams = {"select * from Table1 where id=@id", "id", id };  //格式为:{sql命令,参数键,参数值}   (其中参数键,参数值可以为空)

string cmdType = "select";

Dataset ds = Execute(prams, cmdType);

 

prams:string数组,格式:{sql命令,参数键,参数值}   (其中参数键,参数值可以为空)

cmdType: 包括四种值"insert","delete","update","select"

返回值为一个Object对象,所以使用此方法的返回值时需要进行强制转换

 

 

    public Object Execute(string[] prams, string cmdType)
    {
        this.Open();
        //一条语句无参数
        if (cmdType == "select")
        {
         
            //select语句 返回DataSet
            if (prams.Length == 1)
            {
                string cmd = prams[0];
                DataSet ds = new DataSet();
                SqlDataAdapter dap = new SqlDataAdapter(cmd, con);
                dap.Fill(ds);
                this.Close();
                return ds;
            }
            else
            {
                //sql带参数命令
                string cmd = prams[0];
                //获取临界数组下表
                int paramMid = (prams.Length - 1) / 2;
                string[] PramsKey = new string[100];
                string[] PramsValue = new string[100];
                //获取参数键
                for (int i = 1,j = 0; i <= paramMid; i++,j++)
                {
                    PramsKey[j] = prams[i];
                }
                for (int i = paramMid + 1,j=0; i <= prams.Length-1; i++,j++)
                {
                    PramsValue[j] = prams[i];
                }
                SqlCommand sqlCmd = con.CreateCommand();
                sqlCmd.CommandText = cmd;
                for (int i = 0; i < paramMid; i++)
                {
                    sqlCmd.Parameters.Add(new SqlParameter(PramsKey[i], PramsValue[i]));
                }
                SqlDataAdapter dap = new SqlDataAdapter(sqlCmd);
                DataSet ds = new DataSet();
                dap.Fill(ds);
                this.Close();
                return ds;
            }
        }
        //sql插入命令,返回影响的行数
        //sql更新命令,返回影响的行数
        //sql删除命令,返回影响的行数
        if (cmdType == "insert" || cmdType == "update"
            || cmdType == "delete")
        {
            //sql命令无参数
            if (prams.Length == 1)
            {
                SqlCommand cmd = con.CreateCommand();
                cmd.CommandText = prams[0];
                int num = cmd.ExecuteNonQuery();
                this.Close();
                return num;
            }
            //sql命令有参数
            else
            {
                //sql带参数命令
                SqlCommand cmd = con.CreateCommand();
                cmd.CommandText = prams[0];
                //数组下表临界值
                int paramMid = (prams.Length - 1) / 2;
                string[] paramKey = new string[100];
                string[] paramValue = new string[100];
                //获取键
                for (int i = 1, j = 0; i <= paramMid; i++, j++)
                {
                    paramKey[j] = prams[i];
                }
                //cmd.Parameters.Clear();
                //获取值
                for (int i = paramMid + 1, j = 0; i <= prams.Length - 1; i++, j++)
                {
                    paramValue[j] = prams[i];
                }
                //添加参数
                for (int i = 0; i < paramMid; i++)
                {
                    cmd.Parameters.Add(new SqlParameter(paramKey[i], paramValue[i]));
                }
                int num = cmd.ExecuteNonQuery();
                //cmd.Parameters.Clear();
                this.Close();
                return num;
            }
        }
        this.Close();
        return null;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值