设为首页 加入收藏

TOP

一般处理程序加简单三层实现增删查改(1)(二)
2019-09-03 00:47:41 】 浏览:63
Tags:一般 处理 程序 简单 实现 增删 查改
ure;
foreach (var item in parmenters) { if (item !=null) { //判断的参数是输入输出或者参数是输入并且参数不能为空 if ((item.Direction==ParameterDirection.InputOutput|| item.Direction==ParameterDirection.Input )&& (item.Value==null)) { //该类区分空值(空对象)和未初始化值 item.Value = DBNull.Value; } //加入这个参数 sqlcmd.Parameters.Add(item); } } //返回连接和命令 return sqlcmd; } } } View Code

 

这个是手动搭建的一个类库,可能不全,随后我会附加上一个比较全的sqlHelper.cs类文件

using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; namespace DAL { /// <summary>
    /// 数据层 - 数据库 操作类 /// </summary>
    internal class SqlHelper { //获得配置文件的连接字符串
        public readonly static string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; #region 01.查询数据表 static DataTable ExecuteDataTable(string strSql, params SqlParameter[] paras)
        /// <summary>
        /// 查询数据表 /// </summary>
        /// <param name="strSql">sql语句</param>
        /// <param name="paras">参数数组</param>
        /// <returns>数据表</returns>
        public static DataTable GetDataTable(string strSql, params SqlParameter[] paras) { //创建数据库连接对象
            SqlConnection conn = new SqlConnection(strConn); //创建适配器对象(sql命令,连接通道)
            SqlDataAdapter da = new SqlDataAdapter(strSql, conn); //为适配器添加参数
 da.SelectCommand.Parameters.AddRange(paras); //创建数据表对象
            DataTable dt = new DataTable(); //适配器 读取数据库,并将查询的结果 装入程序的 dt里
 da.Fill(dt); //返回数据表
            return dt; } #endregion
        #region 02.执行非查询语句 int ExcuteNonQuery(string strSql, params SqlParameter[] paras)
        /// <summary>
        /// 执行非查询语句) /// </summary>
        /// <param name="strSql">sql语句</param>
        /// <param name="paras">参数数组</param>
        /// <returns>受影响的行数</returns>
        public static int ExcuteNonQuery(string strSql, params SqlParameter[] paras) { int res = -1; //创建连接通道
            using (SqlConnection conn = new SqlConnection(strConn)) { //创建命令对象(sql语句,连接通道)
                SqlCommand cmd = new SqlCommand(strSql, conn); //添加参数
 cmd.Parameters.AddRange(paras); conn.Open(); //执行非查询SQL命令
                res = cmd.ExecuteNonQuery(); } return res; } #endregion
        #region 03.执行多条非查询语句 public static int ExcuteNonQuerys(string[] strSqls, SqlParameter[][] parasArr)
        /// <summary>
        /// 执行多条非查询语句 /// </summary>
        /// <param name="strSql">sql语句数组</param>
        /// <param name="paras">参数二维数组</param>
        /// <returns>受影响的行数</returns>
        public static int ExcuteNonQuerys(string[] strSqls, SqlParameter[][] parasArr) { int res = 0; //创建连接通道
            using (SqlConnection conn = new SqlConnection(strConn)) { //打开数据库连接
 conn.Open(); //创建事务
                SqlTransaction tran = conn.BeginTransaction(); //创建命令对象
                SqlCommand cmd = conn.CreateCommand(); //为命令对象指定事务
                cmd.Transaction = tran; try { //循环执行sql语句
                    for (int i = 0; i < strSqls.Length; i++) { //获得要执行的sql语句
                        string strSql = strSqls[i]; //为命令对象指定 此次执行的 sql语句
                        cmd.CommandText = strSql; //添加参数
                        if (parasArr.Length > i)//如果 参数2维数组的长度大于当前循环的下标
 { cmd.Parameters.AddRange(parasArr[i]);//将 交错数组 的第一个元素(其实也是一个数组,添加到参数集合中)
 } res += cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); } tran.Commit();//提交事务
 } catch (Exception ex) { res = 0; tran.Rollback();//回滚事务
                    throw ex; } } re
首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇二维码的生成细节和原理【转】 下一篇ADO.NET中的Connection详解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目