如何建空的BLOB参数?------------------急!!!!!!!!

jkj9999 2011-12-15 10:05:13
c#调用存储过程保存4张图片
如果图片为空的话,不生成记录
我用empty_blob建一个blob空值,但存储过程不认为这是空值,产生了一条空记录
我又用createtemporaryblob()函数建一个blob空值,效果一样

不知道还有没有其它方法构建一个空的blob类型参数???

比较急,任何意见都欢迎,十分感谢!
...全文
135 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jkj9999 2011-12-15
  • 打赏
  • 举报
回复
下午不能回复了

感谢楼上各位
jkj9999 2011-12-15
  • 打赏
  • 举报
回复
to 6楼
我查了资料,BLOB类型不能直接赋值
而且我也试过直接赋值了,不行

jkj9999 2011-12-15
  • 打赏
  • 举报
回复

我不确定是用法的问题还是什么原因

但存储过程是XX研究所写的,是通用的,不光我用
机器人 2011-12-15
  • 打赏
  • 举报
回复
直接用 DBNull 不行吗?

Convert.DBNull
jkj9999 2011-12-15
  • 打赏
  • 举报
回复
empy_blob-》empty_blob

0字节试过了也不行

阿非 2011-12-15
  • 打赏
  • 举报
回复
empy_blob

肯能传进去变 'empy_blob'了
阿非 2011-12-15
  • 打赏
  • 举报
回复
或者你传递一个零字节
jkj9999 2011-12-15
  • 打赏
  • 举报
回复
谢谢楼上,
我没有说清楚,存储过程不是我负责,无法修改
我只负责调用
存储过程的参数不能为空,我现在奇怪为什么empy_blob不行
jkj9999 2011-12-15
  • 打赏
  • 举报
回复
联系技术支持了,问题还没有解决
我认为不应该是传参的问题,而是存储过程里面判断的问题,但其它系统没有这个问题
其实最简单的方式还是不传,给存储过程的参数设个缺省值就可以了

楼上的我都看了,不一一回复了,表示感谢

结贴
zdzcool 2011-12-15
  • 打赏
  • 举报
回复
对于这种类型的数据,操作比较麻烦。要转成char的数组来做。你就转一个空的数组穿进去不行吗。
tanghuawei 2011-12-15
  • 打赏
  • 举报
回复
这个应该他存储过程里面就要进行判断啊
你传DBNull就可以了啊
如果是Oracle:
则存储过程中这样判断即可 dbms_lob.getlength(blob_col)>0则不为空产生记录,否则不生成记录
qldsrx 2011-12-15
  • 打赏
  • 举报
回复
你可以在传值之前,判断是否为空,如果为空,则直接传递DBNull.Value即可(数据类型无需指定)

另外,经实际测试,.NET4.0下面操作Blob类型的参数,可以无需指定参数类型,直接传递byte[],而且这个byte[]超过32k也能够自动转换成功。
机器人 2011-12-15
  • 打赏
  • 举报
回复
不能赋值的意思? 不是用 Parameter 方式传值么?

110,570

社区成员

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

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

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