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();就可以了。