首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据访问层的使用方法

错误描述包括三个部分:函数名称,执行的查询语句(存储过程)和系统给出的错误信息。这样呢就很容易发现出错的地方,尤其是使用查询语句的时候。...六、错误日志 发生异常的时候,会自动记录错误信息,以便日后的维护和修改错误错误日志以文本文件的形式存放在 /log文件夹下面,文件名是yyyyMMdd的格式。 为什么用文本文件而不用数据库?...因为一般正式使用后发生的异常大多都是由于数据库造成的,所以很有可能在发生异常之后已经无法再向数据库里写信息了。而向文本文件里写信息一般是不会出错的。..."); //检查是否出现异常 if (dal.ErrorMsg.Length > 2 ) { Response.Write(dal.ErrorMsg ); //输出错误信息 return; } string...(); dal.RunSql("delete from News where NewsID=" + e.Item.Cells[0].Text); //检查是否出现异常 if (dal.ErrorMsg.Length

1.6K80

将复杂查询写到SQL配置文件--SOD框架的SQL-MAP技术简介

如果把所有的SQL语句都集中管理一个配置文件,那么程序编写和维护、发布都要方便很多,也容易跨数据库平台,甚至可以根据这个SQL配置文件,写个代码生成器,自动生成DAL层代码。...SQL-MAP--集中管理SQL查询 PDF.NET SOD框架的SQL-MAP功能借鉴了iBaits的思想,但是大力简化它的配置并提供代码生成工具,可以自动化的完成DAL代码生成,下面是它的工作过程:...二、使用代码生成器 2.1 配置代码生成器 打开PDF.NET集成开发工具,选择菜单 “配置”--SQL-MAP代码生成器配置,出现下面的界面: 在编辑区域,鼠标右键菜单,启用用编辑,如果是第一次配置,...本示例,采用嵌入式编译的方式,这样SQL语句的安全性更高,并且支持一个项目中使用多个SqlMap配置文件,但是不如作为独立文件使用修改方便。...重新生成DAL类文件,我们看看最后生成的SqlMapDAL类的内容: //使用该程序前请先引用程序集:PWMIS.Core,并且下面定义的名称空间前缀不要使用PWMIS,更多信息,请查看 http://

1.6K100
您找到你想要的搜索结果了吗?
是的
没有找到

快速开发编程模型,打通数据库的错误反馈!不会这招你就亏大了。

而且还有些人,压根就没有考虑异常情况,然后程序一掉线,就弹各种窗,用户点点点,“爽歪歪”。 这就是为什么有些人写程序图省事,后期维护火葬场的由来了。...数据完整性由数据库来控制 1、字段完整性 表达式:工号'' and 姓名'' check名: {姓名和工号不可空白} 2、唯一性限制 设置唯一索引,索引名为{订单号不能为空} 3、表间的校验或状态更新 表的触发器写过程...,如不合要求,则 rasieError(..., '{客户欠款数超过限额啦}',..) 4、引用完整性 产品资料的信息入库单存在,不让用户删除....关系图中,只需拉一根线(产品资料.产品编号->入库单明细.产品编号)将关系名改为,{该物料已经被使用,无法删除} 一根线解决问题,一句代码也不用写。...框架取回后端的错误 MSSQLHelper 假设产品资料的信息入库单存在,不让用户删除. oDBSQLHelper=newobject("MSSQLHelper","MSSQLHelper.prg"

41320

增删查改的一个类就搞定,少写代码多运动生活才更美好

最该关注的异常处理流程一个也没有做,然后又喜欢COPY别人的错误处理,弹了一堆框,美其名曰:我有做错误处理。...一、 连接账套数据库 框架目录双击运行祺佑代码生成器(要预先配置好账套) 点击连接数据库,便会将数据库的所有表列出来。 ?...二、生成DAL_CA类 选中一个表点击生成按钮,将生成的代码(文件名:dal_employees.prg),保存到项目中的DAL目录。 ? ?...三、项目管理器添加这个DAL_CA类,点击菜单程序—>编译下。 ? 四、增删查改测试一下 先运行一下环境设置,然后就可以测试了。...运行如下代码: *-- Newobject 函数声明一个类 *-- 参数1 是类名称,参数2 是类所在的PRG文件*-- 1 DALCA类的实例化和查询所有记录 *-- 2 DALCA类一经实例化,即拥有增删改的功能

49720

分表分库(百亿级大数据存储)

为了方便,我们将使用SQLite数据库,因此不需要配置任何数据库连接,XCode检测到没有名为STOD的连接字符串,将默认使用SQLite。...例程遍历了今年的365天,连接字符串指定的timeData目录下,生成了12个月份数据库,然后每个库里面按月生成数据表,每张表插入1000行模拟数据。...综上,分表分库其实就是操作数据库之前,预先设置好 Meta.ConnName/Meta.TableName,其它操作不变! 分表查询 说到分表,许多人第一反应就是,怎么做跨表查询?...只能在多张表上各自查询,如果系统设计不合理,甚至可能需要在所有表上进行查询。 不建议做视图union,那样会无穷无尽,业务逻辑还是放在代码为好,数据库做好存储与基础计算。...分表分库后,最容易犯下的错误,就是使用时忘了设置表名,错误的表上查找数据,然后怎么也查不到…… 分表策略 根据这些年的经验: Oracle适合单表1000万~1亿行数据,要做分区 MySql适合单表1000

1.1K30

分页解决方案 之 数据访问函数库——另类的思路、另类的写法,造就了不一样的发展道路。

和 是否真的删除了一条数据#region 判断是否出现异常 和 是否真的删除了一条数据             //判断是否出现异常             if (dal.ErrorMessage.Length...("" + dal.ExecuteRowCount);             判断是否出现异常 和 是否真的删除了一条数据#region 判断是否出现异常 和 是否真的删除了一条数据             ...//判断是否出现异常             if (dal.ErrorMessage.Length > 0)             {                 //出现异常,客户端弹出提示信息...Response.Write("" + dal.ExecuteRowCount);             判断是否出现异常 和 是否真的添加了一条数据#region 判断是否出现异常 和 是否真的添加了一条数据...5、使用一个属性来代替异常处理,只需要检查这个属性值,即可知道是否发生异常。 6、产生异常的时候会记录下SQL语句(或者储存过程的名称)、错误描述、时间、网页即URL参数,以便于调试、修改错误

68080

干货 | 多业务线亿级体量,携程是怎么做账务台的

所以设计统一账务台化的工程,进行了日志组件的设计: 1)统一使用高性能的log4j2替代logback; 2)通过spring aop和annotation,支持方法入参、出参、异常日志的自动打印...1)携程的dal组件 dal使用dal cluster通过服务端配置分库分表信息,但是全套使用dal太过笨重,它是一个完全的ORM框架,生成sql的工具不支持生成特殊自定义的sql。...我们把分库算法包成jar包,方便使用。配置我们使用yml。使用过程,需要结合dal cluster的key,代码示例如下: ?...业务24小不间断运行,账户余额不断变化,无法准确取到期末的账户余额进行核对,采用余额快照与总账科目余额进行核对。 6)稽核明细 检查明细账与分录流水是否一致。...2.3.5.3 日终系统遇到的挑战 1)24小记账 银行账务系统,对于24小运行,有很多种方案,例如切换余额、记不同分户账、日切后补流水等,但无论哪种方案,都不能实现完全24小运行。

1.2K41

未经处理的异常在 System.Data.dll 中发生。其他信息:使用条件的上下文( ‘***‘ 附近)中指定了非布尔类型的表达式。

机房收费系统,有些人在联合查询这个模块用的是存储过程,我先尝试着在数据库建立了一个视图,然后UI层做个判断并生成查询条件strCondition。          ...机房收费系统的“联合查询”模块中出现的问题:“System.Data.SqlClient.SqlException”类型的未经处理的异常在 System.Data.dll 中发生。...其他信息: 使用条件的上下文( '@strCondition' 附近)中指定了非布尔类型的表达式。          ...,此错误发生调试已经证明查询条件没有错误,如下图:strCondition的值为:“cardNumber='1' ”,所以整个SQL语句不就是“ select * from QueryOnLineStatus_View...(2)、查询语句中where与1之间有空格,报错:使用条件的上下文( '1' 附近)中指定了非布尔类型的表达式;          2、假设查询语句中where后面是一条语句(假设这条语句是“

76850

未经处理的异常在 System.Data.dll 中发生。其他信息:使用条件的上下文( *** 附近)中指定了非布尔类型的表达式。

我先尝试着在数据库建立了一个视图,然后UI层做个判断并生成查询条件strCondition。          ...机房收费系统的“联合查询”模块中出现的问题:“System.Data.SqlClient.SqlException”类型的未经处理的异常在 System.Data.dll 中发生。...其他信息: 使用条件的上下文( '@strCondition' 附近)中指定了非布尔类型的表达式。          ...,此错误发生调试已经证明查询条件没有错误,如下图:strCondition的值为:“cardNumber='1' ”,所以整个SQL语句不就是“ select * from QueryOnLineStatus_View...(2)、查询语句中where与1之间有空格,报错:使用条件的上下文( '1' 附近)中指定了非布尔类型的表达式; ?

1.4K20

【自然框架】之数据访问 —— 再小的类库也需要设计。

5、 如果运行是出现异常,可以把异常信息、出错的SQL保存到文本文件里面,便于调试、修改错误。 6、 可以方便的扩展相关功能,遵循关闭开放原则。 不承担的责任: 1、 不对SQL语句进行检查。...结构: 1、 两个工厂   CommonFactory:生成Db系列的实例,比如DbConnection、DbCommand等。内部使用。...DALFactory:调用者使用的工厂,通过这个工厂,根据数据驱动类型,生成数据访问的实例。 2、 主体部分   DataAccessLibrary:这个是数据访问的核心部分,相当于大树的主干。...("BBS_Reply");   if (Dal.ErrorMessage.Length > 0)   {   //出现异常       Functions.PageRegisterAlert...//出现异常           Functions.PageRegisterAlert(Page, "更新参与讨论的帖子的时候出现意外情况!")

83690

重量级的选手DAL_CA上场,掀翻一堆重复的屎山代码

在上篇文章,我们用生成器来生成DAL_CA类的代码. 而DAL_CA的代码一生成就拥有增删改保存撤消的方法。...框架的设定,MSSQLHelper是轻量级的DAL层类,可以用来执行SQL命令,实现增删查改的功能。...当实例化一个DAL_ca,调用Cursorfill()方法,将生成一个临时表,这个表像VFP的临时表一样可以进行操作. *-- Newobject 函数声明一个类 *-- 参数1 是类名称,参数2 是类所在的...Browse 1 新增一个空行 oDALCA.Add() Browse 2 使用Replace 命令填充数据 (同样可以使用此命令修改数据行) ,也可以绑定到控件操作....oDalCa.detectchanged() 5 保存到后台数据库,返回值为.T.则保存成功,为.F.,可以显示oDALCa.msg属性查看错误原因 if !

25930

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET平台开发指南 - 数据层开发

这些属性方便用户定义数据库实体类及表类使用,在数据库属性类,常规情况下,一个属性等同于一个数库列,但是,一个属性并不一定关联一个数据库列,也可以关联到一个函数或常量之上。...Query方法执行过程,可以一次全部同步数据库表数据,也可以根据条件同步数据库的某一部分数据,进行条件参数,需求使用查询条件对象(Condition)、查询条件单元对象(Element)和结果排序单元对象...Condition          条件类是ORM的一个功能辅助类,他相当于开发人员在编号SQL语句的过程中所编写的一组查询条件。...条件由条件单元组件,如果条件用于查询查询,需要对查询结果排序,刚需求使用排序条件单元,以下是条件类及条件单元的结构关系: ?         ...,即与模块相关的定义部分和与业务相关部分,第一次生成,生存器生成写成的定义和一个空的业务代码文件,程序员在业务代码文件增加业务处理代码,当模型修改之后重新生成只覆盖与模型定义相关的代码文件。

1.8K90

第二步:下拉列表框。

= "txt" Me.Font.Size = FontUnit.Point(9) 这就方便多了,只是写SQL语句的时候需要使用别名的方式,修改字段的名称,以便适应 ID和txt。...当然这个是可以避免的,一是检查是否出现异常,要不就是确保数据是完整的,绝对不会出现这种item里面找不到值的情况。 但是我比较懒,不像写太多的代码来预防这些事情。...这个和 文本框是一样的,也是使用正则的方式来验证。这里主要验证是否选择了一个选项。...正确执行返回空字符串,不正确返回错误信息     ' 查询语句     ' 正确执行返回空字符串,不正确返回错误信息...正确执行返回空字符串,不正确返回错误信息     ' 查询语句     ' 正确执行返回空字符串,不正确返回错误信息

2.2K60

5,ORM组件XCode(动手)

下面以《速览》的UserMember为例,建立数据表: 数据表名: 用户 (UserMember) 中文名 英文名 数据类型 大小 是否主键 是否唯一 是否必填 默认值 编号 ID Int32 10...有兴趣的朋友完全可以定制自己的代码生成器,DAL类的Tables属性可以取得该连接的表架构信息,如DAL.Create("Test").Tables可以取得连接名为Test的数据库的架构信息。    ...业务代码等人工编写的代码,都要求卸载业务类里面,当表结构改变需要重新生成代码,仅生成数据类即可,人工编写的代码保留在业务类,不至于被覆盖。...XCoder输出目录生成了代码文件,复制到vs里面去 ? ?...后面就是标准的连接字符串了,当然,这个时候是可以修改为Access、Oracle、MySql等连接字符串的,尽管我们开始的时候是SqlServer建立表结构。

1K90

数据访问函数库的使用方法(二)—— 获取记录集和使用事务的方法

/// 如果字段比较多可以使用  dal.RunSqlDataRow(sql); 的方式。             ...{                 //出现异常,函数内部会自动回滚事务,并且关闭连接                 return ;    //终止程序,最好能够给出提示             ...if (dal.ErrorMsg.Length > )             {                 //出现异常,函数内部会自动回滚事务,并且关闭连接                 .../// 优点:函数内部自动处理连接的打开和关闭的问题。             /// sql语句出现错误的时候,会在/log/里面建立一个文本文件,记录出错的信息。             .../// 可以通过查看这个文件,快速分析出来出错原因,使用sql语句的情况下帮助很大。

1K100

MySQL索引选择底层原理探究-从一个慢查询说起 | 技术创作特训营第一期

背景与问题在生产环境收到一个接口耗时预警, 通过监控发现, 接口耗时达到了89s, 最终定位到了是因为触发了一个sql慢查询场景....问题分析与探索针对mysql慢查询问题, 离不开explain工具的使用. 3.1 尝试1 - force index我们先看下问题sql的执行计划,explain select * from dal_meta_table_par_info_d...因此基本可以断定确实就是mysql优化器选择索引的时候出现和我们不符合预期的情况.3.2 尝试2 - 改变条件值将where的三个查询条件值换成其他值, 看下会如何?...具体如下4.1 强制索引查询语句里增加force index (index_name)的指定,但是这种做法需侵入代码进行硬编码, 而且后续难以维护, 比如改了索引名后会出现sql异常....优化器选择索引原理mysql底层的查询架构如下, 其中查询优化器阶段进行最终索引的确定.图片选择索引是MySQL优化器的工作。

4.8K65960
领券