不知道起什么标题好...

myminimouse 2010-01-23 10:09:27
.net做的桌面程序直连ms sql2005数据库。这个系统安装了很多地方都没问题,然后昨天一个客户的服务器突然数据就没有保存了。
用profiler跟踪,发现执行的语句是这样的:(是一个插入一个更新,用分号隔开,用SqlCommand的ExecuteScalar执行)

insert into 表a values(1111,0,0,0,'2010-1-23
9:52:18',0,0,0,0,0x00,0x0000,0,0,0,0,0,0,0,0,0,0,'','2010-1-23
9:52:21',0,0);update 表b set 字段1='2010-1-23
9:52:18',字段2=0,字段3=0,字段4=0,字段5=0,字段6=0x00,字段7=0x0000,字段8='2010-1-23
9:52:18' where V_字段9=1111

就是在2010-1-23 9:52:18这个日期和时间中间有一个换行。该字段在数据库是设置的datetime格式,应该是转换错了导致没有插入成功。
我用vs调试的时候,鼠标放到这个时间的变量上,也是日期和时间中间有换行。但是在局部变量里看,却没有换行,就是一个正常的字符串。我的程序代码是这样的
string date = DateTime.Now.ToShortDateString()+" "+DateTime.Now.ToShortTimeString()

更奇怪的是,我这边的系统运行,调试和用profiler跟踪的结果和客户那边一样,但是却可以插入成功。而且该客户的系统以前的数据都是插入正常的,昨天才出现这个问题,百思不得其解,疑惑有二,一是上面描叙的情况日期和时间中间到底有没有换行,有的话是怎么出来的,二为什么同样的语句(用profiler确定了我这边和客户那边执行的语句是一样的)在我这边可以客户那边失败。望大家赐教,谢谢。
...全文
101 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
feixianxxx 2010-01-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ks_reny 的回复:]
是不是客戶的電腦上 日期格式有被修改過。 在控制面板上--》地區及語言選項 中設置。
[/Quote]
很久不见
ks_reny 2010-01-23
  • 打赏
  • 举报
回复
是不是客戶的電腦上 日期格式有被修改過。 在控制面板上--》地區及語言選項 中設置。
myminimouse 2010-01-23
  • 打赏
  • 举报
回复
周末发贴很悲剧啊
morris88 2010-01-23
  • 打赏
  • 举报
回复
myminimouse 2010-01-23
  • 打赏
  • 举报
回复
更无语的现象:
刚把几个datetime字段改为varchar,程序运行的时候还是没有插入,而我把profiler里的sql复制到studio里执行是可以成功的,保存下来的字段里也没有换行。
myminimouse 2010-01-23
  • 打赏
  • 举报
回复
麻烦回帖的时候看下贴好吗,我里面写的很清楚了
SQL77 2010-01-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fredrickhu 的回复:]
用char(10)和char(13)来代替回车和换行
[/Quote]
对,如果要用就用这个代替你的那些,但是不能用程序里面的回车
nianran520 2010-01-23
  • 打赏
  • 举报
回复
看看是不是客户端输入日期的问题
Mr_Nice 2010-01-23
  • 打赏
  • 举报
回复
路过,学习...
--小F-- 2010-01-23
  • 打赏
  • 举报
回复
用char(10)和char(13)来代替回车和换行
SQL77 2010-01-23
  • 打赏
  • 举报
回复
你在执行SQL的时候将\r\n用正则替换掉呀,

SQL中如果有这个是会报错的

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧