早上在编写执行用例时,突然爆异常System.NullReferenceException: 未将对象引用设置到对象的实例 执行代码:…
下午在写代码时,突然发现一个列名为Enable的字段怎么也查询不出来,开始以为可能这个名称是关键字,所以给过滤掉了,所以就将名称修改为IsEnable,问题还是一样......将名称又改为IsEnables和IsPost结果还是查询不出来...... 所以开启了DeBug调试,逐步跟踪程序在SubSonic3.0插件中的执行情况,发现在一开始时,这个字段是读取出来了,但莫明其妙的不见了,反复跟踪了好几次后才发现,是因为这个字段类型为tinyint时,在C#中是转为byte类型的,而插件在添加查询…
SubSonic3.0插件在创建实体后,对实体进行赋值操作时,为了去除一些不必要更新的字段,减少更新的内容,会将更新内容与默认值进行比较,如果默认值与当前更新的内容相等时,则不提交更新本列,这主要是为新增记录时设置的,因为本列虽然不进行更新,但由于数据库里存在默认值,所以提交后数据库会自动判断使用默认值进行填充. 比如数据库有表Test,有字段StatusName nvrchar(10), StatusId int,默认值为0,正常新增记录语句为 insert into Test (Status…
最近公司客服提交了个BUG,说是更新产品详细信息时,有的可以有的更新不了,前段时间一直没空所以暂时放下,刚才又出现这个问题,所以马上处理了一下. 打开项目解决方案,进入DEBUG模式,拿到操作的数据提交后进行追踪,发现提交时产生了:System.Data.SqlClient.SqlException (0x80131904): 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确.参数 4 ("@up_xxx"): 数据类型 0xA7 的数据长度或元数据长度无效. 百度一下…
在调试程序时,同事发现添加记录时,出现了System.NullReferenceException异常 DictBase dict = new DictBase();    dict.DictCode = "aaa";    dict.DictName = "bbb";    dict.Save(); 而自己在编写查询Information info = new Information(x => x.Id == 1);  时,也引发了同样的异常,经Debug发…
前面几章主要是概念性的东西为主,向初学者们介绍项目开始前的一些知识与内容,从本章开始将会进入实操阶段,希望跟着本系统学习的朋友认真按说明做好每一步操作(对于代码最好是直接照着文档内容在你的IDE中打一次出来,而不是使用复制粘贴),这样对你理解后面的章节会有较好的帮助,如果你对我这种书写方式有什么建议或支持,也希望在评论中留言,谢谢你的支持. SubSonic3.0简介 SubSonic是Rob Conery用c#语言写的一 个ORM开源框架,使用BSD软件授权许可(The BSD 3-Claus…
使用SubSonic3.0一段时间了,一直都想找机会测试一下各种查询分页速度,对比一下插件的查询效率到底怎么样,所以昨天写好了测试程序,准备好1K.1W.10W.50W和100W记录的数据表,早上详细做了测试. 本机硬件配置: 英特尔 第三代酷睿 i5-3470(3.2GHz 四核) 华硕 P8B75-V 8G金士顿DDR3 1600MHz内存 希捷 ST1000DM003-1CH162(1T / 7200转/分) 本机软件配置: Win7 + SQL2005 + VS2010 测试方法:使用5…
由于目前开发的项目使用云计算技术,客户端只进行UI与相关事件的功能开发,而所有的计算与处理都放到了服务器端,客户端与数据库没有任何关联,所以服务器端与客户端使用我们自己开发的通讯加密方式进行,而具体的数据内容传输就转成Json方式.客户端对数据进行添加与修改操作时,先将内容存储到实体中,然后转换成Json字串进行压缩加密处理后提交到服务器端,服务器端接收到后进行解压解密处理后,对Json字串进行反序列化处理存储到对应的实体当中,然后再进行相应的操作. 在开发框架时还没有什么问题,而进行具体的功能…
EF中使用带参数的SqlQuery进行查询时,抛出"另一个 sqlparametercollection 中已包含 sqlparameter"异常. 这是由于SqlParamerterCollection中同样的参数不能重复添加.即在后续的操作中进行了一次以上的查询. 可以使用db.Database.SqlQuery(sql, param).ToList()的方式避免此异常.这种方式用于分页时不合适,因为所有数据都会都加载到内存了 或者对sql语句使用占位符的语法.如: slect *…
SELECT在mysql中是查询表中的数据的作用,但也可以在查询的时候直接进行运算,然后返回查询后的结果 比如 )) FROM username2 其中的IFNULL函数是对adven数据进行判断,若adven中的数据不为NULL,则返回adven本身的数据,若为NULL,则返回0. 其它+,-,/的运算也可以如同上面的代码进行替换而已. 更多函数 函数 描述 AVG(column) 返回某列的平均值 COUNT(column) 返回某列的行数(不包括 NULL 值) COUNT(*) 返回被选…