在插入或者更新数据库时,如何自动截断字符串?

realljx 2004-12-24 09:48:07
很多的时候 SQL Server会返回一个错误 说是将截断字符串,可是它却没有截断字符串,而是导致事物失败?

请问:如题。可否设置连接或者命令 在执行操作的过程中 能够自动截断超长的字符串?
...全文
322 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Truly 2004-12-24
  • 打赏
  • 举报
回复
而切我没有办法知道目标字段的大小。


--》EXEC sp_columns @table_name = 'customers',@column_name='companyName'
marvelstack 2004-12-24
  • 打赏
  • 举报
回复
使用前台控制或参数化查询或,存储过程。
exboy 2004-12-24
  • 打赏
  • 举报
回复
在 duamiwsh 里面就是自己写的涵数来处理的
exboy 2004-12-24
  • 打赏
  • 举报
回复
如果是直接使用 SQL 语句的话,那就自己写个函数来处理了。
Truly 2004-12-24
  • 打赏
  • 举报
回复
cmd.Parameters.Add("@item1",SqlDbType.Varchar,256) = yourParam1

Add方法中指定的长度是可以截断的

存储过程的入口参数长度定义也是可以截断的
如:
@para varchar(256),
nga96 2004-12-24
  • 打赏
  • 举报
回复
好像SQL能自动截断吧,兄弟
Jouzen 2004-12-24
  • 打赏
  • 举报
回复
我也想知道 有什么更好的方法。

是不是只能用substr()?

帮顶
realljx 2004-12-24
  • 打赏
  • 举报
回复
恩,是拼的串。而切我没有办法知道目标字段的大小。

难道 SQL Server 没有提供类似的参数 或者 在SQL 语句里面也没有类似的参数 吗?
brightheroes 2004-12-24
  • 打赏
  • 举报
回复
你要用sql来操作的话
是拼的串的话,就要考虑验证了

如果你的sql里面用了参数

比如说insert into xx ..........values(@item1,@item2.....
这样的情况,
.Add("@item1",SqlDbType.Varchar,256) = yourParam1
好像也不会出现截断的情况吧(没有验证过)
brightheroes 2004-12-24
  • 打赏
  • 举报
回复
或者你的UI上,要设置最大限制,比如说,MAXLENGTH之类的属性
realljx 2004-12-24
  • 打赏
  • 举报
回复
可是我的 基本上都是 sql 来直接操作的呵呵:)
brightheroes 2004-12-24
  • 打赏
  • 举报
回复
如果是用存储过程来保存数据的话
采用varchar(i)类型的参数
将会自动截断超过i之后的数据

i为一个整数
realljx 2004-12-24
  • 打赏
  • 举报
回复
U P 救命啊!!~
realljx 2004-12-24
  • 打赏
  • 举报
回复
沙发 先祝大家圣诞快乐。

在隆冬来临之际,希望你身体健康,永远快乐的就像炉子上的水壶一样,即使屁股烧得红红的,也依然快乐的吹着口哨幸福的冒着鼻涕泡泡。圣诞节来临了,朋友,祝你节日快乐~!
李洪喜 2004-12-24
  • 打赏
  • 举报
回复
肯定是你的数据表的字段设置的长度不够了。所以才出现这种情况。
检查一下吧。
IsSky 2004-12-24
  • 打赏
  • 举报
回复
定义InsertCommand,增加参数可以定义变量的长度。
可以接取
xym5 2004-12-24
  • 打赏
  • 举报
回复
可以在拼接以后对得到的字串进行截断,自己需要写代码处理
realljx 2004-12-24
  • 打赏
  • 举报
回复
看起来 真的只能自己来了。

看了 联机帮助也没有什么收获,。
KentYu 2004-12-24
  • 打赏
  • 举报
回复
不用存储过程,自己拼sql的化,自己写个函数截断啊

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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