基于ajax的三层,实现数据库的增删改查(二 sqlHelper的代码实现)

来源:互联网 发布:办公软件怎么求和 编辑:程序博客网 时间:2024/05/18 16:17

可以直接调用,传参数即可 ,要说的就是第一行代码,需要在WEBCONFIG里加入一行代码,这行代码为数据库连接字符串,再使用第一行代码就可以读到这个了。

<connectionStrings><add name="SQLStudentConnString" connectionString="Data Source=192.168.1.4;Initial Catalog=OA;User ID=sa;Password=sa;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/></connectionStrings>

private static readonly string conStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;

CommandType可以看下面的文档了解

CommandType 属性

指示 Command 对象的类型。

设置和返回值

设置或返回以下某个 CommandTypeEnum 值。

常量说明AdCmdText将 CommandText 作为命令或存储过程调用的文本化定义进行计算。AdCmdTableCommandText 作为其列全部由内部生成的 SQL 查询返回的表格的名称进行计算。AdCmdTableDirectCommandText 作为其列全部返回的表格的名称进行计算。AdCmdStoredProcCommandText 作为存储过程名进行计算。AdCmdUnknown默认值。CommandText 属性中的命令类型未知。adCmdFileCommandText 作为持久 Recordset 文件名进行计算。AdExecuteNoRecords指示 CommandText 为不返回行的命令或存储过程(例如,插入数据的命令)。如果检索任意行,则将丢弃这些行且并不返回。它总是与adCmdTextadCmdStoredProc 进行组合。

params参数可以选填多个或不填。为传入的参数




        //执行增删改的
        public static int ExecuteNonQuery(string sql, CommandType cmdType, params SqlParameter[] pms)
        {
            using (SqlConnection con = new SqlConnection(conStr))
            {
                using (SqlCommand cmd = new SqlCommand(sql, con))
                {
                    cmd.CommandType = cmdType;
                    if (pms != null)
                    {
                        cmd.Parameters.AddRange(pms);
                    }
                    con.Open();
                    return cmd.ExecuteNonQuery();
                }
            }
        }

        //封装一个执行返回单个值的方法
        public static object ExecuteScalar(string sql, CommandType cmdType, params SqlParameter[] pms)
        {
            using (SqlConnection con = new SqlConnection(conStr))
            {
                using (SqlCommand cmd = new SqlCommand(sql, con))
                {
                    cmd.CommandType = cmdType;
                    if (pms != null)
                    {
                        cmd.Parameters.AddRange(pms);
                    }
                    con.Open();
                    return cmd.ExecuteScalar();
                }
            }
        }

        //返回SqlDataReader对象的方法

        public static SqlDataReader ExecuteReader(string sql, CommandType cmdType, params SqlParameter[] pms)
        {
            SqlConnection con = new SqlConnection(conStr);
            using (SqlCommand cmd = new SqlCommand(sql, con))
            {
                cmd.CommandType = cmdType;
                if (pms != null)
                {
                    cmd.Parameters.AddRange(pms);
                }
                try
                {
                    con.Open();
                    return cmd.ExecuteReader(CommandBehavior.CloseConnection);
                }
                catch (Exception)
                {
                    con.Close();
                    con.Dispose();
                    throw;
                }
            }
        }


        //封装一个返回DataTable的方法
        public static DataTable ExecuteDataTable(string sql, CommandType cmdType, params SqlParameter[] pms)
        {
            DataTable dt = new DataTable();
            using (SqlDataAdapter adapter = new SqlDataAdapter(sql, conStr))
            {
                adapter.SelectCommand.CommandType = cmdType;
                if (pms != null)
                {
                    adapter.SelectCommand.Parameters.AddRange(pms);
                }
                adapter.Fill(dt);
            }

            return dt;
        }

        //封装一个带事务的执行Sql语句的方法
        public static void ExecuteNonQueryTran(List<SqlAndParameter> list)
        {
            using (SqlConnection con = new SqlConnection(conStr))
            {
                using (SqlCommand cmd = con.CreateCommand())
                {
                    con.Open();
                    using (SqlTransaction trans = con.BeginTransaction())
                    {
                        cmd.Transaction = trans;
                        try
                        {
                            foreach (var SqlObject in list)
                            {
                                cmd.CommandText = SqlObject.Sql;
                                if (SqlObject.Parameters != null)
                                {
                                    cmd.Parameters.AddRange(SqlObject.Parameters);
                                }
                                cmd.CommandType = SqlObject.CmdType;
                                cmd.ExecuteNonQuery();
                                cmd.Parameters.Clear();
                            }
                            trans.Commit();
                        }
                        catch (Exception)
                        {
                            trans.Rollback();
                            throw;
                        }
                    }
                }
            }
        }
    }

    public class SqlAndParameter
    {
        public string Sql
        {
            get;
            set;
        }

        public SqlParameter[] Parameters
        {
            get;
            set;
        }

        public CommandType CmdType
        {
            get;
            set;
        }
    }can's
阅读全文
1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 网贷暴力催收警察也没办法怎么办 儿子把我车抵押给了高利贷怎么办 水泵开机五分钟左右就跳闸怎么办 离婚了她说过的不好你该怎么办 偏侧咀嚼笑时一边嘴歪怎么办 三相四线开关前地线有电怎么办 高三学生重度抑郁怎么办马高考了 潞城报名系统密码找不回来怎么办 绵阳富乐实验小学外地入学怎么办 联想手机升级失败开不了机怎么办 电脑桌面上的微信图标不见了怎么办 精子总活力和运动力低怎么办 精子少畸形高怎么办能治好吗 小米无人机只能飞500米远怎么办 考察课作弊被老师抓了怎么办 手机中木马病毒了钱被盗走了怎么办 在搜不到校园网的情况下怎么办 刚买小鸡第四天晚上一直叫怎么办 碘131第四天晚上吃太撑了怎么办 出现请点击画面开始进行校准怎么办 大学毕业后才发现荒废了学业怎么办 房屋面积重新测量超了一倍怎么办 物管把业主的电断了怎么办 在人多的场合紧张不适应怎么办 人寿人身损害勘查结果有争议怎么办 批量性不良再限度样本规格内怎么办 老公说老婆不攒钱都买衣服了怎么办 华为手机获取安装包信息失败怎么办 液压电动脱模器不上升了怎么办 退伍军人证和身份证名字不付怎么办 车辆有违章需要短信提醒要怎么办 1969年退伍的退伍证丢了怎么办 江苏移动没实名认证停机了怎么办呀 亿达老年手机来电音量太大怎么办 挑三十六乘二的内螺纹丝瞳毛怎么办 内六角螺丝的冒滑了怎么办 孔里的内六角滑了怎么办 十字螺丝刀的头卡在螺母里怎么办 内六角扳手断在螺丝孔里怎么办 六棱螺丝刀折进螺丝里了怎么办 内6棱螺丝拧花了怎么办