using System; using System.Data; using System.Text; using System.Data.SqlClient; using System.Collections.Generic; using LYFZ.Helper; namespace LYFZ.WeixinServiceDate.DAL { /// /// 数据操作抽象基类 /// public abstract class BaseDataOperate : LYFZ.WeixinServiceDate.StandardInterface.IBaseDataLaye { #region 属性 /// /// 数据表模型对象 /// public abstract object ObjModel { get; } /// /// 数据表名 /// public abstract string TableName { get; set; } /// /// 过期属性请不要使用 数据表字段名字符串,字段名以“,”号分隔 /// public abstract string TableFieldNameString { get; set; } string _TableFieldNameStr = ""; /// /// 数据表字段名字符串,字段名以“,”号分隔 /// public string TableFieldNameStr { get { if (this._TableFieldNameStr.Trim() == "") { for (int i = 0; i < this.TableFieldNames.Length; i++) { if (this._TableFieldNameStr.Trim() == "") { this._TableFieldNameStr += "[" + this.TableFieldNames[i] + "]"; } else { this._TableFieldNameStr += ",[" + this.TableFieldNames[i] + "]"; } } } if (this._TableFieldNameStr.Trim() == "") { this._TableFieldNameStr = "*"; } return this._TableFieldNameStr; } set { this._TableFieldNameStr = value; } } /// /// 数据表字段名数组 /// public string[] TableFieldNames { get { System.Reflection.PropertyInfo[] propertyInfos = this.PropertyInfos; string[] fieldNames = new string[propertyInfos.Length]; for (int i = 0; i < propertyInfos.Length; i++) { if (!propertyInfos[i].IsSpecialName) { System.Reflection.PropertyInfo propertyInfo = propertyInfos[i]; fieldNames[i] = propertyInfo.Name; } } // System.Reflection.PropertyInfo propertyInfo = ObjModel.GetType().GetProperty(propertyInfos[0].Name); return fieldNames;//this.TableFieldNameString.Replace("[", "").Replace("]", "").Replace(" ", "").Split(','); } } /// /// 获取要查询的当前表的字段集合字符串 用","号分隔 /// /// /// 如果为true 表示只返回 filters 集合中的字段 如果为false 表示返回排除 filters 集合中的字段以外的所有字段 /// public string GetQueryTableFieldNames(string[] filters = null, bool isContain = false) { List tempFilters = new List(); if (filters != null) { tempFilters.AddRange(filters); } System.Reflection.PropertyInfo[] propertyInfos = this.PropertyInfos; string fieldNames = ""; for (int i = 0; i < propertyInfos.Length; i++) { if (!propertyInfos[i].IsSpecialName) { System.Reflection.PropertyInfo propertyInfo = propertyInfos[i]; if ((!tempFilters.Contains(propertyInfo.Name) && !isContain) || (tempFilters.Contains(propertyInfo.Name) && isContain)) { if (fieldNames.Trim().Length <= 0) { fieldNames = "[" + propertyInfo.Name + "]"; } else { fieldNames += ",[" + propertyInfo.Name + "]"; } } } } return fieldNames; } /// /// 获取属性集合 /// public System.Reflection.PropertyInfo[] PropertyInfos { get { List list = new List(); System.Reflection.PropertyInfo[] infos = ObjModel.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo info in infos) { if (info.CanWrite) { list.Add(info); } } return list.ToArray(); } } #endregion #region 检查记录 /// /// 是否存在该记录 /// public bool Exists(int id) { return this.Exists("ID", id); } /// /// 根据筛选条件判断是否存在该记录 /// /// 筛选字段名 /// 筛选值 /// public bool Exists(string filterFieldName, object filterValue) { if (filterFieldName != "" && filterValue != null) { StringBuilder strSql = new StringBuilder(); strSql.Append("select count(1) from " + this.TableName + " "); strSql.Append(" where 1=1 and " + filterFieldName + "=@" + filterFieldName); SqlParameter[] parameters = { new SqlParameter("@"+filterFieldName, filterValue) }; return SQLHelper.Exists(strSql.ToString(), parameters); } else { return false; } } /// /// 根据筛选条件判断是否存在该记录 /// /// 筛选字段名 /// 筛选值 /// public bool Exists(string whereString) { if (whereString.Trim().Length > 0) { StringBuilder strSql = new StringBuilder(); strSql.Append("select count(1) from " + this.TableName + " "); strSql.Append(" where " + whereString); return SQLHelper.Exists(strSql.ToString()); } else { return false; } } /// /// 判断是否存某个字段 /// /// 列名称 /// 是否存在 public bool ColumnExists(string columnName) { return SQLHelper.ColumnExists(this.TableName, columnName); } #endregion #region 公共方法 /// /// 获取最大ID() /// /// public int GetMaxID() { return this.GetMaxID("ID"); } /// /// 获取某字段最大值(获取字段必须为数字类型) /// /// 字段名 /// public int GetMaxID(string FieldName) { return SQLHelper.GetMaxID(FieldName, this.TableName); } /// /// 检查CLR功能是否开启 /// /// public static bool CheckingCLR() { try { DataSet cds = LYFZ.Helper.SQLHelper.Query("SELECT TOP 1 [Cus_Name] ,[Cus_Name_py],[Cus_Sex_cs] FROM [dbo].[Vw_AggregationCustomer]"); return true; } catch { return false; } } #endregion #region 判断方法 /// /// 获取是否为忽略字段 返回 true 表示忽略 false 不忽略 /// /// 忽略字段名列表 字段名之间用“,”号分隔 /// 要判断的字段名 /// public bool IsOverlookFiel(string overlookFieldList, string fieldName) { bool bl = false; string[] tempOverlookFieldList = overlookFieldList.Split(','); for (int i = 0; i < tempOverlookFieldList.Length; i++) { if (tempOverlookFieldList[i].Trim().ToLower() == fieldName.Trim().ToLower()) { bl = true; break; } } return bl; } #endregion #region 增加数据 /// /// 增加一条数据 /// /// Model对象 /// 忽略字段名列表 字段名之间用“,”号分隔 /// public bool Add(object model, string overlookFieldList = "ID") { LYFZ.Helper.CommandInfo comdInfo = this.GetAddCommandInfo(model, overlookFieldList); int rows = SQLHelper.ExecuteSql(comdInfo.CommandText, (SqlParameter[])comdInfo.Parameters); if (rows > 0) { return true; } else { return false; } } /// /// 获取插入数CommandInfo对象 /// /// /// 要忽略的字段集合 多个字段名有“,”号分隔 /// public object GetAddCommandInfoObject(object model, string overlookFieldList = "ID") { return this.GetAddCommandInfo(model, overlookFieldList); } /// /// 获取插入数CommandInfo对象 /// /// /// 要忽略的字段集合 多个字段名有“,”号分隔 /// /// public LYFZ.Helper.CommandInfo GetAddCommandInfo(object model, string overlookFieldList = "ID", EffentNextType type = EffentNextType.None) { StringBuilder strSql = new StringBuilder(); StringBuilder tempFieldNameString = new StringBuilder(); StringBuilder tempValueVariable = new StringBuilder(); List parameterlist = new List(); for (int i = 0; i < PropertyInfos.Length; i++) { try { System.Reflection.PropertyInfo propertyInfo = PropertyInfos[i]; string tempFieldName = propertyInfo.Name; object tempValue = propertyInfo.GetValue(model, null); Type tempType = propertyInfo.PropertyType; if (!IsOverlookFiel(overlookFieldList, tempFieldName) || (tempFieldName.ToLower() == "id" && tempType == typeof(long))) { try { if (tempType.Name == "DateTime") { if (tempValue.ToString().Contains("0001")) { tempValue = null; } try { DateTime tempTime; if (!DateTime.TryParse(tempValue.ToString(), out tempTime)) { tempValue = null; } else if (tempTime <= LYFZ.WinAPI.CustomPublicMethod.GetNullDateTime()) { tempValue = null; } } catch { tempValue = null; } } else if (tempFieldName.ToLower() == "id" && tempType == typeof(long) && (tempValue == null || Convert.ToInt64(tempValue) == 0)) { tempValue = LYFZ.WinAPI.CustomPublicMethod.GenerateId(); } if (tempValue != null) { tempFieldNameString.Append("" + tempFieldName + ","); tempValueVariable.Append("@" + tempFieldName + ","); SqlParameter parameter = new SqlParameter("@" + tempFieldName, tempValue); parameterlist.Add(parameter); } } catch { } } } catch { } } //去除结尾多余的“,” if (tempFieldNameString.ToString().LastIndexOf(',') == tempFieldNameString.Length - 1) { tempFieldNameString.Remove(tempFieldNameString.Length - 1, 1); } //去除结尾多余的“,” if (tempValueVariable.ToString().LastIndexOf(',') == tempValueVariable.Length - 1) { tempValueVariable.Remove(tempValueVariable.Length - 1, 1); } strSql.Append("insert into " + this.TableName + "("); strSql.Append("" + tempFieldNameString.ToString() + ")"); strSql.Append(" values ("); strSql.Append("" + tempValueVariable.ToString() + ")"); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = parameterlist.ToArray(); return new CommandInfo(strSql.ToString(), parameters, type); } #endregion #region 更新数据 /// /// 根据筛选字段和SQL筛选运算符号更新数据(内部方法) /// /// Model对象 /// 筛选字段名称 /// SQL筛选运算符号 /// 忽略字段名列表 字段名之间用“,”号分隔 /// Wher条件,当指定条件语句时筛选字段设置无效,不包含“where”关键字 不建义使用此参数 /// protected bool InsideUpdate(object model, string filterFieldName = "ID", string operators = "=", string overlookFieldList = "ID", string whereStr = null) { LYFZ.Helper.CommandInfo comdInfo = GetUpdateCommandInfo(model, filterFieldName, operators, overlookFieldList, whereStr); int rows = SQLHelper.ExecuteSql(comdInfo.CommandText, (SqlParameter[])comdInfo.Parameters); if (rows > 0) { return true; } else { return false; } } /// /// 获取更新数据的UpdateCommandInfo对象 根据筛选字段和SQL筛选运算符号更新数据(内部方法) /// /// Model对象 /// 筛选字段名称 /// SQL筛选运算符号 /// 忽略字段名列表 字段名之间用“,”号分隔 /// Wher条件,当指定条件语句时筛选字段设置无效,不包含“where”关键字 不建义使用此参数 public object GetUpdateCommandInfoObject(object model, string filterFieldName = "ID", string operators = "=", string overlookFieldList = "ID", string whereStr = null) { return this.GetUpdateCommandInfo(model, filterFieldName, operators, overlookFieldList, whereStr); } /// /// 获取更新数据的UpdateCommandInfo对象 根据筛选字段和SQL筛选运算符号更新数据(内部方法) /// /// Model对象 /// 筛选字段名称 /// SQL筛选运算符号 /// 忽略字段名列表 字段名之间用“,”号分隔 /// Wher条件,当指定条件语句时筛选字段设置无效,不包含“where”关键字 不建义使用此参数 /// public LYFZ.Helper.CommandInfo GetUpdateCommandInfo(object model, string filterFieldName = "ID", string operators = "=", string overlookFieldList = "ID", string whereStr = null, EffentNextType type = EffentNextType.None) { StringBuilder strSql = new StringBuilder(); strSql.Append("update " + this.TableName + " set "); List parameterlist = new List(); overlookFieldList += "," + filterFieldName; for (int i = 0; i < PropertyInfos.Length; i++) { try { System.Reflection.PropertyInfo propertyInfo = PropertyInfos[i]; string tempFieldName = propertyInfo.Name;//字段名 object tempValue = propertyInfo.GetValue(model, null);//对应字段值 //如果字段名不为忽略字段则进行处理 if (!IsOverlookFiel(overlookFieldList, tempFieldName)) { try { if (tempValue.GetType() == typeof(DateTime)) { DateTime tempTime; try { if (!DateTime.TryParse(tempValue.ToString(), out tempTime)) { tempValue = null; } else if (tempTime <= LYFZ.WinAPI.CustomPublicMethod.GetNullDateTime()) { tempValue = null; } else if (tempTime.Year == Convert.ToDateTime("0001-01-01").Year || tempTime.Year == Convert.ToDateTime("1753-01-01").Year) { tempValue = null; } } catch { tempValue = null; } } } catch { } strSql.Append("" + tempFieldName + "=@" + tempFieldName + ","); SqlParameter parameter = new SqlParameter("@" + tempFieldName, tempValue); parameterlist.Add(parameter); } } catch { } } //去除结尾多余的“,” if (strSql.ToString().LastIndexOf(',') == strSql.Length - 1) { strSql.Remove(strSql.Length - 1, 1); } if (whereStr == null) { if (filterFieldName != "" && operators != "") { try { object FilterFieldValue = LYFZ.WinAPI.CustomPublicMethod.GetPropertyValue(model, filterFieldName);// model.GetType().GetProperty(filterFieldName).GetValue(model, null); strSql.Append(" where " + filterFieldName + operators + "@" + filterFieldName); parameterlist.Add(new SqlParameter("@" + filterFieldName, FilterFieldValue)); } catch { } } } else { strSql.Append(" where 1=1 and (" + whereStr + ")"); } SqlParameter[] parameters = parameterlist.ToArray(); return new CommandInfo(strSql.ToString(), parameters, type); } /// /// 根据筛选字段和SQL筛选运算符号更新数据 /// /// Model对象 /// 筛选字段名称 /// SQL筛选运算符号 /// 忽略字段名列表 字段名之间用“,”号分隔 /// public bool Update(object model, string filterFieldName = "ID", string operators = "=", string overlookFieldList = "ID") { return InsideUpdate(model, filterFieldName, operators, overlookFieldList); } /// /// 根据Wher条件更新数据 不建义使用此方法 /// /// Model对象 /// Wher条件,不包含“where”关键字 /// 忽略字段名列表 字段名之间用“,”号分隔 /// public bool Update(object model, string whereStr, string overlookFieldList = "ID") { return InsideUpdate(model, overlookFieldList: overlookFieldList, whereStr: whereStr); } #endregion #region 删除数据 /// /// 根据筛选字段或where条件删除数据 /// /// 筛选字段名 /// 筛选SQL运算符 /// 筛选值 /// Wher条件,不包含“where”关键字 /// protected bool InsideDelete(string filterFieldName = "ID", string operators = "=", object filterValue = null, string whereStr = null) { LYFZ.Helper.CommandInfo comdInfo = GetDeleteCommandInfo(filterFieldName, operators, filterValue, whereStr); int rows = SQLHelper.ExecuteSql(comdInfo.CommandText, (SqlParameter[])comdInfo.Parameters); if (rows > 0) { return true; } else { return false; } } /// /// 根据筛选字段或where条件删除数据 /// /// 筛选字段名 /// 筛选SQL运算符 /// 筛选值 /// Wher条件,传入条件语句时筛选字段无效不建义使用 不包含“where”关键字 /// public object GetDeleteCommandInfoObject(string filterFieldName = "ID", string operators = "=", object filterValue = null, string whereStr = null) { return this.GetDeleteCommandInfo(filterFieldName, operators, filterValue, whereStr); } /// /// 根据筛选字段或where条件删除数据 /// /// 筛选字段名 /// 筛选SQL运算符 /// 筛选值 /// Wher条件,传入条件语句时筛选字段无效不建义使用 不包含“where”关键字 /// /// public LYFZ.Helper.CommandInfo GetDeleteCommandInfo(string filterFieldName = "ID", string operators = "=", object filterValue = null, string whereStr = null, EffentNextType type = EffentNextType.None) { if (filterValue == null) { filterValue = ""; } List parameterlist = new List(); StringBuilder strSql = new StringBuilder(); strSql.Append("delete from " + this.TableName + " "); if (whereStr == null) { strSql.Append(" where " + filterFieldName + "" + operators + "@" + filterFieldName + ""); parameterlist.Add(new SqlParameter("@" + filterFieldName, filterValue)); } else { strSql.Append(" where ID>@ID and (" + whereStr + ")"); parameterlist.Add(new SqlParameter("@ID", Convert.ToInt32(0))); } SqlParameter[] parameters = parameterlist.ToArray(); return new CommandInfo(strSql.ToString(), parameters, type); } /// /// 删除一条数据 /// /// id public bool Delete(long ID) { return this.InsideDelete(filterValue: ID); } /// /// 删除一条数据 /// /// id public bool Delete(int ID) { return this.InsideDelete(filterValue: ID); } /// /// 根据筛选字段删除数据 /// /// 筛选值 /// 筛选字段名 /// 筛选SQL运算符 /// public bool Delete(object filterValue, string filterFieldName = "ID", string operators = "=") { return this.InsideDelete(filterFieldName, operators, filterValue); } /// /// 根据where条件删除数据 不建义使用此方法 /// /// Wher条件,不包含“where”关键字 /// public bool Delete(string whereStr) { return this.InsideDelete(whereStr: whereStr); } /// /// 批量删除数据 /// /// 筛选字段名 /// 值列表,多个值用“,”分隔,字符串值用“'”号包含 public bool DeleteList(string filterFieldName, string valueList) { if (filterFieldName != "" && valueList != "") { StringBuilder strSql = new StringBuilder(); strSql.Append("delete from " + this.TableName + " "); strSql.Append(" where " + filterFieldName + " in (" + valueList + ") "); int rows = SQLHelper.ExecuteSql(strSql.ToString()); if (rows > 0) { return true; } else { return false; } } else { return false; } } /// /// 按ID列表批量删除数据 /// /// ID列表,多个用“,”分隔 public bool DeleteList(string idList) { return this.DeleteList("ID", idList); } #endregion #region 查询数据 /// /// 得到一个Object对象实体 /// /// /// public object GetModelObject(long ID) { return DataRowToModelObject(GetDataRow(ID)); } /// /// 得到一个Object对象实体 /// /// /// public object GetModelObject(int ID) { return DataRowToModelObject(GetDataRow(ID)); } /// /// 根据筛选条件获取一条数据Model对象 /// /// 筛选条件字段名 /// 值 /// public object GetModelObject(string filterFieldName, object filterValue) { return DataRowToModelObject(GetDataRow(filterFieldName, filterValue)); } /// /// 根据筛选条件获取一条数据Model对象 /// /// 筛选条件字段名 /// 值 /// SQL筛选运算符号 /// public object GetModelObject(string filterFieldName, object filterValue, string operators) { return DataRowToModelObject(GetDataRow(filterFieldName, filterValue, operators)); } /// /// 根据筛选条件获取一条数据Model对象 /// /// 筛选条件 /// public object GetModelObject(string whereString) { return DataRowToModelObject(GetDataRow(whereString)); } /// /// 得到一个object对象实体 /// /// /// public object DataRowToModelObject(DataRow row) { return DataRowToModel(row, this.ObjModel); } /// /// 获取一条数据DataRow对象 /// /// id /// public DataRow GetDataRow(long id) { return GetDataRow("ID", id); } /// /// 获取一条数据DataRow对象 /// /// id /// public DataRow GetDataRow(int id) { return GetDataRow("ID", id); } /// /// 根据筛选条件获取一条数据DataRow对象 /// /// 筛选条件 /// public DataRow GetDataRow(string whereString) { if (whereString.Trim().Length > 0) { StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 " + this.TableFieldNameStr + " from " + this.TableName + " "); strSql.Append(" where " + whereString); DataSet ds = SQLHelper.Query(strSql.ToString()); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0]; } else { return null; } } else { return null; } } /// /// 根据筛选条件获取一条数据DataRow对象 /// /// 筛选条件字段名 /// 值 /// SQL筛选运算符号 /// public DataRow GetDataRow(string filterFieldName, object filterValue, string operators = "=") { if (filterFieldName != "" && filterValue != null) { StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 " + this.TableFieldNameStr + " from " + this.TableName + " "); strSql.Append(" where 1=1 and " + filterFieldName + "" + operators + "@" + filterFieldName + " "); SqlParameter[] parameters = { new SqlParameter("@"+filterFieldName, filterValue) }; DataSet ds = SQLHelper.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0]; } else { return null; } } else { return null; } } /// /// 根据筛选条件获取一条数据DataRow对象(运算符是“=”) /// /// 筛选条件字段名 /// 值 /// public DataRow GetDataRow(string filterFieldName, object filterValue) { return GetDataRow(filterFieldName, filterValue, "="); } /// /// 得到一个对象实体 /// public object DataRowToModel(DataRow row, object model) { if (row != null) { for (int i = 0; i < PropertyInfos.Length; i++) { try { System.Reflection.PropertyInfo propertyInfo = PropertyInfos[i]; string tempFieldName = propertyInfo.Name;//字段名 if (row[tempFieldName] != null) { object tempValue = row[tempFieldName];//对应字段值 LYFZ.WinAPI.CustomPublicMethod.SetPropertyValue(model, propertyInfo, tempValue); } } catch { } } //for (int i = 0; i < this.TableFieldNames.Length; i++) //{ // try // { // string tempFieldName = this.TableFieldNames[i].Trim(); // if (row[tempFieldName] != null) // { // object tempValue = row[tempFieldName]; // LYFZ.WinAPI.CustomPublicMethod.SetPropertyValue(model, tempFieldName, tempValue); // } // } // catch // { // } //} } return model; } /// /// 获得数据列表 /// /// 条件语句 不包含 where 关键字 /// SQL排序 如:id desc public DataSet GetList(string strWhere, string filedOrder = "ID asc") { return this.GetList(0, strWhere, filedOrder); } /// /// 获得全部数据列表 /// /// SQL排序 如:id desc public DataSet GetAllList(string filedOrder = "ID asc") { return this.GetList("", filedOrder); } /// /// 获得前几行数据 /// /// 行数 /// 条件 不包含 where 关键字 /// SQL排序 如:id asc /// public DataSet GetList(int Top, string strWhere, string filedOrder = "ID asc") { StringBuilder strSql = new StringBuilder(); strSql.Append("select "); if (Top > 0) { strSql.Append(" top " + Top.ToString()); } strSql.Append(" " + this.TableFieldNameStr + " from " + this.TableName + " "); if (strWhere.Trim() != "") { strSql.Append(" where 1=1 and (" + strWhere + ")"); } strSql.Append(" order by " + filedOrder); DataSet ds = SQLHelper.Query(strSql.ToString()); ds.Tables[0].TableName = this.TableName; return ds; } #endregion #region 数据分页 /// /// 获取记录总数 /// public int GetRecordCount(string strWhere) { StringBuilder strSql = new StringBuilder(); strSql.Append("select count(1) FROM " + this.TableName + " "); if (strWhere.Trim() != "") { strSql.Append(" where 1=1 and (" + strWhere + ")"); } object obj = SQLHelper.GetSingle(strSql.ToString()); if (obj == null) { return 0; } else { return Convert.ToInt32(obj); } } /// /// 获取分页后总页数 /// /// 筛选条件 /// 页面大小 /// public int GetByPageCount(string strWhere, int pageSize) { int pageCount = 0; if (pageSize > 0) { int allCount = GetRecordCount(strWhere); pageCount = allCount / pageSize; if (pageCount * pageSize < allCount) { pageCount++; } } return pageCount; } /// /// 分页获取数据列表 /// /// 筛选条件 /// 当前页 不能小于0的整数 /// 页面大小,每页显示条数 不能小于0的整数 /// 排序 /// public DataSet GetListByPage(string strWhere, int pageIndex, int pageSize, string orderby = "id desc") { return this.GetListByPage(strWhere, orderby, (pageIndex - 1) * pageSize, pageIndex * pageSize); } /// /// 分页获取数据列表 /// /// 筛选条件 /// 排序 /// 当前页 /// 页面大小,每页显示条数 /// 返回总页数 /// public DataSet GetListByPage(string strWhere, string orderby, int pageIndex, int pageSize, ref int pageCount) { pageCount = GetByPageCount(strWhere, pageSize); return this.GetListByPage(strWhere, orderby, (pageIndex - 1) * pageSize, pageIndex * pageSize); } /// /// 分页获取数据列表 /// /// 条件 /// 排序 /// 开始index /// 结束index /// public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex) { if (!string.IsNullOrEmpty(strWhere.Trim())) { strWhere = " Where " + strWhere; } if (!string.IsNullOrEmpty(orderby.Trim())) { orderby = " Order By " + orderby; } StringBuilder strSql = new StringBuilder(); strSql.Append("SELECT * FROM " + this.TableName + " Where ID Not IN "); strSql.Append("(Select Top " + startIndex + " ID From " + this.TableName + " " + strWhere + orderby + ")"); strSql.Append(" And ID In "); strSql.Append("(Select Top " + endIndex + " ID From " + this.TableName + " " + strWhere + orderby + ")"); strSql.Append(orderby); DataSet ds = SQLHelper.Query(strSql.ToString()); ds.Tables[0].TableName = this.TableName; return ds; } #endregion #region 2014-8-25 滕工 /// /// Type转Dbtype /// /// 变量的Type类型 /// 对应的DbType类型 public static SqlDbType GetDbType(Type type) { SqlDbType result = SqlDbType.NVarChar; if (type.Equals(typeof(Int32)) || type.IsEnum) result = SqlDbType.Int; else if (type.Equals(typeof(Int64))) result = SqlDbType.Int; else if (type.Equals(typeof(Double)) || type.Equals(typeof(Double))) result = SqlDbType.Decimal; else if (type.Equals(typeof(DateTime))) result = SqlDbType.DateTime; else if (type.Equals(typeof(Boolean))) result = SqlDbType.Bit; else if (type.Equals(typeof(String))) result = SqlDbType.NVarChar; else if (type.Equals(typeof(Decimal))) result = SqlDbType.Decimal; else if (type.Equals(typeof(Byte[]))) result = SqlDbType.Image; else if (type.Equals(typeof(Guid))) result = SqlDbType.UniqueIdentifier; return result; } #endregion } }