解决:数据类型 text 和 varchar 在 equal to 运算符中不兼容

vs2008,gridview,sqldatasource
解决方法:

在gridview中,配制数据源,
设其为指定自定义的sql语句或存储过程,不选指定来自表或视图
下一步,
选update标签,
在系统自动产生的sql语句中,找到大字段所在的部位,形如:
UPDATE [T1] SET [f1] = @f1, [f2] = @f2, [f3] = @f3, [f4] = @f4 WHERE [id] = @original_id AND (([f1] = @original_f1) OR ([f1] IS NULL AND @original_f1 IS NULL)) AND (([f2] = @original_f2) OR ([f2] IS NULL AND @original_f2 IS NULL)) AND (([f3] = @original_f3) OR ([f3] IS NULL AND @original_f3 IS NULL)) AND (([4] = @original_f4) )

其中,f4为大字段
改为:

UPDATE [T1] SET [f1] = @f1, [f2] = @f2, [f3] = @f3, [f4] = @f4 WHERE [id] = @original_id AND (([f1] = @original_f1) OR ([f1] IS NULL AND @original_f1 IS NULL)) AND (([f2] = @original_f2) OR ([f2] IS NULL AND @original_f2 IS NULL)) AND (([f3] = @original_f3) OR ([f3] IS NULL AND @original_f3 IS NULL)) AND ((convert(nvarchar,[f4]) = @original_f4) )

注意使用了convert(新类型,原数据)函数
完美解决问题。
这个方法,在msdn上也很难找到。

by frank

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值