您好,欢迎访问一九零五行业门户网

DBhelper

1 using system; 2 using system.configuration; 3 using system.collections.generic; 4 using system.data; 5 using system.data.common; 6 using system. text ; 7 8 public static class db 9 { ; 11 public static dbproviderfactory factory = dbprovi
1 using system; 2 using system.configuration; 3 using system.collections.generic; 4 using system.data; 5 using system.data.common; 6 using system.text; 7   8 public static class db 9 {; 11     public static dbproviderfactory factory = dbproviderfactories.getfactory(connectionstring.providername); 12   13     public static dbconnection createconnection() 14     { 15         dbconnection con = factory.createconnection(); 16         con.connectionstring = connectionstring.connectionstring; 17         return con; 18     } 19   20     #region 参数 21   22     public static dbparameter createparameter(dbparameter param) 23     { 24         return createparameter(param.parametername, param.value, param.dbtype, param.size, param.direction, param.sourcecolumn, param.sourcecolumnnullmapping, param.sourceversion); 25     } 26  , parameterdirection? direction , bool? sourcecolumnnullmapping ) 28     { 29         dbparameter param = factory.createparameter(); 30   31         param.parametername = parametername; 32         param.value = value; 33   34         if (dbtype != null) 35             param.dbtype = dbtype.value; 36         if (size != null) 37             param.size = size.value; 38         if (direction != null) 39             param.direction = direction.value; 40         if (sourcecolumn != null) 41             param.sourcecolumn = sourcecolumn; 42         if (sourcecolumnnullmapping != null) 43             param.sourcecolumnnullmapping = sourcecolumnnullmapping.value; 44         if (sourceversion != null) 45             param.sourceversion = sourceversion.value; 46   47         return param; 48     } 49   50     private static dbparameter[] convertparameters(object[] parameters) 51     { 52         listdbparameter> paramlist = new listdbparameter>(); 53   54         for (int i = 0; i parameters.length; i++) 55         { dbparametercollection)dbparametercollection) paramlist.add(createparameter(item)); dbparameter) dbparameter);)); 62         } 63   64         return paramlist.toarray(); 65     } 66   67     #endregion 68   69     public static query query(string query, params object[] parameters) 70     { 71         return new query(query, convertparameters(parameters)); 72     } 73   74     public static bool insert(string table, object model) 75     { 76         stringbuilder fields = new stringbuilder(); 77         stringbuilder values = new stringbuilder(); 78         listdbparameter> paramlist = new listdbparameter>(); 79   80         foreach (var item in model.gettype().getproperties()) 81         {,, item.name); 83             values.appendformat(@{0},, item.name); 84             paramlist.add(createparameter(@ + item.name, item.getvalue(model, null))); 85         } 86  ({), )), paramlist.toarray()).execute() > 0; 88     } 89   90     public static bool update(string table, object model, string where, params object[] parameters) 91     { 92         stringbuilder fieldsandvalues = new stringbuilder(); 93         listdbparameter> paramlist = new listdbparameter>(); 94   95         foreach (var item in model.gettype().getproperties()) 96         {@{0},, item.name); 98             paramlist.add(createparameter(@ + item.name, item.getvalue(model, null))); 99         }100  101         paramlist.addrange(convertparameters(parameters));102  {) ;104     }105 }106  107 public class query108 {109     #region 构造方法110  111     public query(string query, dbparameter[] parameters)112     {113         sqlquery = query;114         parameters = parameters;115     }116  117     public query(string query, dbparameter[] parameters, bool isexception)118         : this(query, parameters)119     {120         isexception = isexception;121     }122  123     #endregion124  125     #region 属性/字段126  127     private bool isexception { get; set; }128     public string sqlquery { get; set; }129     public dbparameter[] parameters { get; set; }130  131     #endregion132  133     #region 执行基础134  135     private t executecommont>(funcdbcommand, t> function)136     {137         using (dbconnection con = db.createconnection())138         using (dbcommand cmd = con.createcommand())139         {140             cmd.commandtext = sqlquery;141             cmd.parameters.addrange(parameters);142             con.open();143             t result = function(cmd);144             cmd.parameters.clear();145             return result;146         }147     }148  , t exvalue = default(t))150     {151         if (isexception)152             return executecommont>(function);153  154         try155         {156             return executecommont>(function);157         }158         catch (exception e)159         {160             console.writeline(e.tostring());161             return exvalue;162         }163     }164  165     public void execute(actiondbcommand> action)166     {167         execute(cmd => { action(cmd); return 0; });168     }169  170     #endregion171  172     #region 执行查询173  ()175     {176         return execute(cmd => cmd.executenonquery());177     }178  179     public object scalar()180     {181         return execute(cmd => cmd.executescalar());182     }183  184     public t scalart>()185     {186         return execute(cmd => (t)cmd.executescalar());187     }188  189     public query top(int count)190     {({1}) as t0, count, sqlquery), parameters);192     }193  194     public single tosingle()195     {        {198             single s = new single();199  200             using (var dr = cmd.executereader())201             {202                 if (dr.read())203                 {204                     string name = string.empty;205  206                     for (int i = 0; i dr.fieldcount; i++)207                     {208                         name = dr.getname(i);dr;210                     }211                 }212                 else213                 {214                     throw new exception(not find !!);215                 }216             }217  218             return s;219         });220  221     }222  223     public datatable todatatable()224     {        {227             dbdataadapter da = db.factory.createdataadapter();228             da.selectcommand = cmd;229             datatable dt = new datatable();230             da.fill(dt);231             return dt;232         });233     }234  235     public listt> tolistt>()236     {        {239             listt> list = new listt>();240  241             using (var dr = cmd.executereader())242             {243                 while (dr.read())244                 {245                     type t = typeof(t);246                     t s = default(t);247                     string name = string.empty;248  249                     for (int i = 0; i dr.fieldcount; i++)250                     {251                         name = dr.getname(i);252                         var pro = t.getproperty(name);253  254                         if (pro != null), null);256                     }257  258                     list.add(s);259                 }260             }261  262             return list;263         }, new listt>());264     }265  266     public override string tostring()267     {268         return scalarstring>();269     }270  271     #endregion272  273     #region 分页274  275     private query recordcountquery276     {277         get { return db.query(string.format(select count(*) from ({0}) as t0, sqlquery), parameters); }278     }279  280     private query pagerresultquery(string primarykey, int pageindex, int pagesize)281     {({? {2} t1.{3} from ({0}) as t1) : ),284             sqlquery, pagesize, pageindex * pagesize, primarykey), parameters);285     }286   recordcount)288     {());290         return pagerresultquery(primarykey, pageindex, pagesize).todatatable();291     }292   recordcount)294     {295         return topager(id, pageindex, pagesize, recordcount);296     }297   recordcount)299     {());301         return pagerresultquery(primarykey, pageindex, pagesize).tolistt>();302     }303   recordcount)305     {306         return topagert>(id, pageindex, pagesize, recordcount);307     }308  309     #endregion310 }311  {    {; }317         set { add(name.tolower(), value); }318     }319 },网站空间,美国服务器,虚拟主机
其它类似信息

推荐信息