




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、%/#/作者:jace/时间:2008-5/使用环境:mssqlserver 2005net 2.0/使用mygeneration /建议将四个类分成四个文件存储(分解成单独文./#/作者:jace/时间:2008-5/使用环境:mssqlserver 2005net 2.0/使用mygeneration /建议将四个类分成四个文件存储(分解成单独文件后,请将相关引用的注释去掉)/#region 实体类对象-数据层using system;/modelusing system.data;/dalusing system.text;/dalusing system.d
2、ata.sqlclient;/dal/通用d类/using system;using system.collections;using system.collections.specialized;/using system.data;/using system.data.sqlclient;using system.configuration;namespace .modelpublic class #region 私有字段#endregionpublic ()/构造函数-设置私有字段默认值 = null; / = string.empty; / = datetime.maxvalue; /
3、 /datetime.minvalue此常数的值等效于 0001 年 1 月 1 日 00:00:00.0000000会造成sql溢出/datetime.maxvalue此常数的值等效于 9999 年 12 月 31 日 23:59:59.9999999,恰好在 10000 年 1 月 1 日 00:00:00 之前一个 100 毫微秒刻度处 = false; / = 0; /#region 实体类对象%foreach (icolumn column in table.columns)string name = column.alias;output.write( / );output.wri
4、te(rn / + column.description);output.write(rn / );%public set if( value.length )throw new argumentoutofrangeexception(超过 字段长度定义:, value, value.tostring();if( value.length )throw new argumentoutofrangeexception(超过 字段长度定义:, value, value.tostring(); = value; get return ; #endregion#endregion/#region 数据
5、访问层 dal -与实体类有关系,实际使用中可以分成两个不同的cs类文件来保存/using system;/使用不同的文件时要引用此命名空间/using system.data;/using system.text;/using system.data.sqlclient;/using jace.dbhelpersql;/数据层的基础操作类namespace .dal/ / 数据访问类 ,本类应该通过bll调用/ partial class public ()/构造函数#region 成员方法/ / 是否存在主键记录/ public bool exists()stringbuilder str
6、sql = new stringbuilder();strsql.append(select count(1) from );strsql.append( where );sqlparameter parameters = new sqlparameter();parameters0.value = ;return dbhelpersql.exists(strsql.tostring(), parameters);/ / 取得指定条件的记录数/ public int getreccount(string where)return dbhelpersql.getcount(1,where);/
7、/ 返回表中指定字段的数组/ public system.collections.arraylist getonefieldtoarray(string fieldname)system.collections.arraylist arraylist = new system.collections.arraylist();trystring strselect=select +fieldname+ from ;using (sqldatareader dr = dbhelpersql.executereader(strselect)while (dr.read()arraylist.add(
8、dr.getvalue(0);/因为这个函数是为了得到一个字段的全部内容,而不是多个dr.close();catchreturn arraylist;return arraylist;/ / 增加一条数据,参数是对应jace model生成的实体对象类/ public void add( model)stringbuilder strsql = new stringbuilder();strsql.append(insert into ();strsql.append();strsql.append( values ();strsql.append();sqlparameter paramet
9、ers = ;dbhelpersql.executesql(strsql.tostring(), parameters);/ / 增加多条数据,参数是对应jace model生成的实体对象类/ public void add( models)if (models.length = 0)return;string sqls = new string1;object paras = new objectmodels.length;stringbuilder strsql = new stringbuilder();strsql.append(insert into ();strsql.append
10、();strsql.append( values ();strsql.append();for (int i = 0; i models.length; i+) model = modelsi;sqlparameter parameters = ;parasi = parameters;sqls0 = strsql.tostring();dbhelpersql.executesqltran(sqls, paras);/ / 更新一条数据,参数是对应jace model生成的实体对象类/ public int update( model)stringbuilder strsql = new st
11、ringbuilder();strsql.append(update set );sqlparameter parameters = ;return dbhelpersql.executesql(strsql.tostring(), parameters);/ / 更新多条数据,参数是对应jace model生成的实体对象类数组/ public int update( models)if (models.length = 0)return 0;string sqls = new string1;object paras = new objectmodels.length;stringbuild
12、er strsql = new stringbuilder();strsql.append(update set );for (int i = 0; i models.length; i+) model = modelsi;sqlparameter parameters = ;parasi = parameters;sqls0 = strsql.tostring();return dbhelpersql.executesqltran(sqls, paras);/ / 删除一条数据,参数是主键/ public void delete()stringbuilder strsql = new str
13、ingbuilder();strsql.append(delete from );strsql.append( where );sqlparameter parameters = new sqlparameter();parameters0.value = ;dbhelpersql.executesql(strsql.tostring(), parameters);/ / 删除多条数据,参数是主键数组/ public void delete(s)if (s.length = 0)return;string sqls = new string1;object paras = new object
14、s.length;stringbuilder strsql = new stringbuilder();strsql.append(delete from );strsql.append( where );for (int i = 0; i s.length; i+)sqlparameter parameters = new sqlparameter();parameters0.value = si;parasi = parameters;sqls0 = strsql.tostring();dbhelpersql.executesqltran(sqls, paras);/ / 获得数据列表,s
15、elect * from table 不要写where,直接写条件就行了,可以为/ public dataset getdataset(string strwhere)stringbuilder strsql = new stringbuilder();strsql.append(select * from );if (strwhere.trim() != )strsql.append( where + strwhere);strsql.append( order by );return dbhelpersql.query(strsql.tostring();/ / 获得数据列表,select
16、 * from table 不要写where,直接写条件就行了,可以为/ public datatable getdatatable(string strwhere)stringbuilder strsql = new stringbuilder();strsql.append(select * from );if (strwhere.trim() != )strsql.append( where + strwhere);strsql.append( order by );return dbhelpersql.querytable(strsql.tostring();/ / 得到一个对象实体/
17、 public getmodel()stringbuilder strsql = new stringbuilder();strsql.append(select * from );strsql.append( where );sqlparameter parameters = new sqlparameter();parameters0.value = ; model=new ();dataset ds = dbhelpersql.query(strsql.tostring(), parameters);model. = ;if (ds.tables0.rows.count 0)return
18、 model;elsereturn null;#endregion#endregion/#region 业务逻辑层 bll/using system;/使用不同的文件时要引用此命名空间/using system.text;/using system.data;namespace .bll/ / 数据访问类/ public class .dal. dal=new .dal.();public ()/构造函数#region 成员方法/ / 是否存在主键记录/ public bool exists()return dal.exists();/ / 取得指定条件的记录数/ public int get
19、reccount(string where)return dal.getreccount(where);/ / 返回表中指定字段的数组/ public system.collections.arraylist getonefieldtoarray(string fieldname)return dal.getonefieldtoarray(fieldname);/ / 增加一条数据,参数是对应jace model生成的实体对象类/ public void add( model)dal.add(model);/ / 增加多条数据,参数是对应jace model生成的实体对象类/ public v
20、oid add( models)dal.add(models);/ / 更新一条数据,参数是对应jace model生成的实体对象类/ public int update( model)return dal.update(model);/ / 更新多条数据,参数是对应jace model生成的实体对象类数组/ public int update( models)return dal.update(models);/ / 删除一条数据,参数是主键/ public void delete()dal.delete();/ / 删除多条数据,参数是主键数组/ public void delete(s)
21、dal.delete(s);/ / 获得数据列表,select * from table 不要写where,直接写条件就行了,可以为/ public dataset getdataset(string strwhere)return dal.getdataset(strwhere);/ / 获得数据列表,select * from table 不要写where,直接写条件就行了,可以为/ public datatable getdatatable(string strwhere)return dal.getdatatable(strwhere);/ / 得到一个对象实体/ public get
22、model()return dal.getmodel();#endregion#endregion/#region 通用数据层类 /using system;/using system.collections;/using system.collections.specialized;/using system.data;/using system.data.sqlclient;/using system.configuration;namespace / / copyright (c) 2004-2008 litianping / 数据访问基础类(基于sqlserver)/ 用户可以修改满足
23、自己项目的需要。/ jace 2007年3月7日10时48分 注:在这个类中,因为其连接串是从配置文件中读取(连接串名称myconnection)/ 所以在通用性上不行,要求调用者有此源码于工程中,或将配置文件中加入myconnection串名./ public abstract class dbhelpersql/数据库连接字符串(web.config来配置)/ /protected static string connectionstring;/看实际要求来修改连接串/protected static string connectionstring =server=workgrou-jtr
24、8x7jace;database=master;uid=sa;pwd=skydragon;protected static string connectionstring = server=zkd-szkd;database=test;uid=sa;pwd=12345;/protected static string connectionstring = configurationmanager.connectionstringsmyconnection.connectionstring;/protected static string connectionstring = comm.getp
25、os_1_webconnectionstring();/public dbhelpersql(string strsqlconnectionstring)/ connectionstring = strsqlconnectionstring;/public dbhelpersql()/connectionstring = this.setsqlconnectionstring();/ / 重写这个方法,以设置一个连接字符串/ / /public virtual string setsqlconnectionstring()/ return configurationmanager.connec
26、tionstringssqlconnstring.connectionstring;/#region 公用方法/ / 取得指定表中特定条件下记录的条数/ / 字段名,意义不大/ 表名/ 条件,要包含where关键字/ 返回一个整数,记录条数public static int getcount(string fieldname, string tablename, string where)string strsql = select count( + fieldname + ) from + tablename + ;if (where.length 0)strsql += where;obj
27、ect obj = getsingle(strsql);if (obj = null)return 0;elsereturn int.parse(obj.tostring();/ / 得指定指定表中数字字段的的最大值+1/ / 字段名/ 表名/ 返回指定指定表中数字字段的的最大值+1public static int getmaxid(string fieldname, string tablename)string strsql = select max( + fieldname + )+1 from + tablename;object obj = getsingle(strsql);if
28、 (obj = null)return 1;elsereturn int.parse(obj.tostring();/ / 是否存在指定记录/ / 带参数形式的sql查询语句/ 各参数值/ public static bool exists(string strsql, params sqlparameter cmdparms)object obj = getsingle(strsql, cmdparms);int cmdresult;if (object.equals(obj, null) | (object.equals(obj, system.dbnull.value)cmdresult
29、 = 0;elsecmdresult = int.parse(obj.tostring();if (cmdresult = 0)return false;elsereturn true;#endregion#region 执行简单sql语句/ / 执行sql语句,返回影响的记录数/ / sql语句/ 影响的记录数public static int executesql(string sqlstring)using (sqlconnection connection = new sqlconnection(connectionstring)using (sqlcommand cmd = new
30、sqlcommand(sqlstring, connection)tryconnection.open();int rows = cmd.executenonquery();return rows;catch (system.data.sqlclient.sqlexception e)connection.close();throw new exception(e.message);/ / 执行多条sql语句,实现数据库事务。/ / 多条sql语句 public static void executesqltran(arraylist sqlstringlist)using (sqlconne
31、ction conn = new sqlconnection(connectionstring)conn.open();sqlcommand cmd = new sqlcommand();cmd.connection = conn;sqltransaction tx = conn.begintransaction();cmd.transaction = tx;tryfor (int n = 0; n 1)cmd.commandtext = strsql;cmd.executenonquery();tx.commit();catch (system.data.sqlclient.sqlexcep
32、tion e)tx.rollback();throw new exception(e.message);/ / 执行带一个存储过程参数的的sql语句。/ / sql语句/ 参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加/ 影响的记录数public static int executesql(string sqlstring, string content)using (sqlconnection connection = new sqlconnection(connectionstring)sqlcommand cmd = new sqlcommand(sqlstring, connection);system.data.sqlclient.sqlparameter myparameter = new system.data.sqlclient.sqlparameter(content, sqldbtype.ntext);myparameter.value = content;cmd.parameters.add(myparameter);tryconnection.open();int row
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辅导员大学生心理健康教育
- 2025年智能制造工程师职业资格考试试卷及答案
- 露营咖啡店设计分析模板
- 2025关于北京租房合同范本下载
- 2025深度解析租房合同中的常见陷阱
- 2025服务协议与劳动合同有何关联
- 体育课堂游戏教学设计
- 投资合伙入股协议书
- 影楼二销承包协议书
- 建立健全的考试与考核制度计划
- 赠与合同协议书模板
- 焊工电工考试试题及答案
- 【MOOC期末】《大学生计算与信息化素养》(北京林业大学)期末中国大学慕课MOOC答案
- (高清版)JTGT 3365-02-2020 公路涵洞设计规范
- 政务服务中心物业服务投标方案
- 法律职业伦理(第二版)完整版教学课件全书电子讲义(最新)
- 水利水电工程毕业设计---水闸设计
- 住房公积金廉政风险防控指引
- 医用耗材分类目录 (低值 ╱ 高值)
- 小学数学总复习-数的认识讲义
- 2020山西中考模拟百校联考试卷(一)道德与法治答题卡
评论
0/150
提交评论