dapper支持DataSet

在源代码中添加


      

        /// <summary>
        /// describe:支持 DataSet
        /// </summary>
        /// <param name="cnn"></param>
        /// <param name="adapter"></param>
        /// <param name="sql"></param>
        /// <param name="param"></param>
        /// <param name="buffered"></param>
        /// <param name="commandTimeout"></param>
        /// <param name="commandType"></param>
        /// <returns></returns>
        public static DataSet ExecuteDataSet(this IDbConnection cnn, IDbDataAdapter adapter, string sql, object param = null, bool buffered = true, int? commandTimeout = null, CommandType? commandType = null)
        {
            var ds = new DataSet();
            var command = new CommandDefinition(sql, (object)param, null, commandTimeout, commandType, buffered ? CommandFlags.Buffered : CommandFlags.None);
            var identity = new Identity(command.CommandText, command.CommandType, cnn, null, param == null ? null : param.GetType(), null);
            var info = GetCacheInfo(identity, param, command.AddToCache);
            bool wasClosed = cnn.State == ConnectionState.Closed;
            if (wasClosed) cnn.Open();
            adapter.SelectCommand = command.SetupCommand(cnn, info.ParamReader);
            adapter.Fill(ds);
            if (wasClosed) cnn.Close();
            return ds;
        }

 

posted @ 2016-05-18 17:51  深海巨坑  阅读(2610)  评论(0编辑  收藏  举报