• 项目中常见bug及解决方法


    1.执行插入数据库的操作。如果不知道字段值是什么样子,在在c#中执行插入操作存储过程时,可以启用数据库中的工具-SQL SERVER profiler来进行追踪。

    2.loe4net配置文件中可以记录时间,设置为%d。在%d后加大括号可以设置时间格式。务必注意字母大小写!!

      例如:%d{yyyy-MM-dd HH:mm:ss}//可以写入数据库的格式

      同时,一般获取的当前时间DateTime.Now.ToString();得到的格式与上面相同

      或者%d{dd MM yyy HH:mm:ss,fff}。//这种写法完全没必要。因为log4net获取的时间本来就是精确到毫秒的。

     PS:HH:mm:ss,fff中,hh小写表示12小时制,比如16:30会被显示为04:30.。。HH大写表示24小时制。。。

    3.测试数据时候插入了很多值,当前正式发布时需要将数据清空。此时的方法有两种

    --SQL Server 自增字段归零(本段来自http://bbs.csdn.net/topics/350107880 6#回复)
    
    --SQL Server 2005表自增字段在多次插入数据后,自增的ID号比较混乱,而且删除数据后,自增的ID并不会归零,有两种方法可以控制自增的字段:
    
    方法一:如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数
    
        truncate table 表名
    
    方法二:  dbcc checkident ('table_name', reseed, new_reseed_value)  当前值设置为  new_reseed_value。如果自创建表后没有将行插入该表,则在执行  DBCC  CHECKIDENT  后插入的第一行将使用  new_reseed_value  作为标识。否则,下一个插入的行将使用  new_reseed_value  +  1。如果  new_reseed_value  的值小于标识列中的最大值,以后引用该表时将产生  2627  号错误信息。
    
    方法二不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。
    当表中有了一下数据后
    执行语句  DBCC CHECKIDENT ('dbo.Person', RESEED, 10) 后再通过Management Studio添加数据时,ID就会自动从11开始,也就是new_reseed_value+1开始
    

    4.对于log4net的UDP传输数据时,发送端和接收端的数据格式务必完全一致!!!不然会有各种莫名其妙的你无法解决的错误。。

    5.写了这样一段代码。数据库中写了一个插入操作的存储过程。然后在c#中执行该存储过程,往表里面写数据。但是。。。。。。

      开启接收端,插入254条数据后,就停止了接收。catch到的异常是:

      超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

      解决办法:我只写了conn.open();但是我没写conn.close();啦。所以在存储过程执行完的位置后加上conn.close();就可以了。

  • 相关阅读:
    js刷新页面方法
    ng-disabled的使用
    拖拽——拖动进度条显示进度
    node Express安装与使用(一)
    javascript 中slice,substr,substring方法的对比
    DOM节点
    js事件(一)之事件流
    谈谈React Native环境安装中我遇到的坑
    Git--分布式版本控制系统
    js代码
  • 原文地址:https://www.cnblogs.com/lanjin/p/3988666.html
Copyright © 2020-2023  润新知