【机房重构】SQL语句已终止
来源:互联网 发布:linux informix 安装 编辑:程序博客网 时间:2024/06/03 02:03
在下机将消费时间写入数据库时,出现了一个没有遇到过的错误,用了将近一下午的时间才改正过来,其实出错的原因也很简单。
“语句已终止”,首先想到的是自己没有那个能力将更新语句写成终止语句吧!思维往这个方向偏,就忽略了本身导致问题的原因。思维越来越偏,甚至怀疑是自己写的SQL语句导致数据库死循环了,真是脑洞大开。。。
SQL语句如下:
//SQL更新命令语句string cmdText = "Update Line Set OffLineTime=@OffTime,ConMoney=@Money,ConTime=@ConTime,Status=@Statu where CID=@CID and Status=@Status";//参数SqlParameter[] sqlParams={new SqlParameter("@ConTime",lineList[0].ConTime), new SqlParameter("@Money",lineList[0].ConMoney), new SqlParameter("@OffTime",dt), new SqlParameter("@CID",lineList[0].CID), new SqlParameter("@Statu",false), new SqlParameter("@Status",true)};
其实仔细看一看就能看到错误信息:将截断字符串或二进制数据。“将截断字符串或二进制数据。”说明添加到数据库的信息,有的字段已经超出了数据库里的长度被截断,或者是其中的类型出现了不匹配!其实怎样准确的找到调试过程中具体的错误,以前的博客里面已经有了叙述:《开启调错之旅》,这里就不再多加叙述。
这次字段超出范围的是消费时间,之前设置的是varchar(10)类型,长度太小,消费时间计算出的数值过大,导致了字符串被截断。当然,出现问题说明varchar类型没有自动修剪数据的功能,便将这个字段设置成了decimal类型。decimal可以根据设计数据库时设置的长度自动修剪数据,使数据保存时适应类型本身的长度,避免了数据过长被截断的错误。
虽然知道怎么改了,但是具体是怎么回事儿,却没有查到,还是需要大神指教的。
0 0
- 【机房重构】SQL语句已终止
- 重构机房收费系统之常用SQL语句总结
- 机房合作—将截断字符串或二进制数据 语句已终止
- 【机房重构】SQL之视图
- 【机房重构】SQl之存储过程
- 【sql server】数据库设计<机房重构>
- 【机房重构】SQL之字符
- 【机房重构】-SQL Server数据类型
- 【C#机房重构】“ System.Configuration.ConfigurationSettings.AppSettings”已过时
- sql 报错:语句被终止。完成执行语句前已用完最大递归 100。
- SQL数据库之将截断字符串或二进制数据 语句已终止
- 机房重构(五)--SQL Server 计算时间差DATEDIFF函数
- 【机房合作】SQL语句使用
- 【机房重构】总结
- 机房重构总结
- 机房重构小结
- 机房重构--sqlhelper
- 机房重构总结
- android按Menu出现菜单的动画
- Longest Palindromic Substring
- 小胖说事29-----iOS中Navigation中左滑pop页面的三种方法
- Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/WebApplicationContext
- C#和.Net联系
- 【机房重构】SQL语句已终止
- Median of Two Sorted Arrays
- 每天一个小知识点3(原型与构造函数总结一)
- 冒泡方排序
- Linux下执行ping命令创建得到的进程的有效用户不是root
- noi模板-HDU1269-强连通分量
- Hive Cilent数据操作
- 一个非常strong的编程学习方法
- 标准I/O文件复制,文件I/O文件复制