使用Oracle存储过程问题,参数为空抱错 在程序中使用Oracle存储过程,例如有一个content列类型为varchar2型,当我使用一个String型给他传参时,如果String没有被赋值,那么就是"",但是存储过程就会抱错,不允许插入""这个怎么解决啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 像sql server的存储过程那样 给他进行参数类型转换 例如string strID;Dim sqlCmd As OracleCommand = New OracleCommand("update test set name=:name", sqlConn) sqlCmd.Parameters.Add(":name", OracleType.varchar2).Value = strID当我的strID未赋值时,这个存储过程就会引起错误 sqlCmd.Parameters.Add(":name", OracleType.varchar2).Value = strID这样写不对吧strID应该位于add方法里面吧 往Oracle数据库中存储时,如果你要存入的值为"",它会将其作为null值处理,如果你的表中有非空限制就会出错的.. 列设置的是允许为空的,用sql语句是可以插入的,但是用程序写的存储过程就出错了 string strID = string.empty;看看行不 一般是这样的,例如我用 string strID=txtcontent.Text.trim()如果这个输入框没有任何输入,那肯定string strID=""然后存储过程就出错了,不可能对每一个变量都判断吧,有没有针对存储过程修改的方法SQL server就没问题,oracle真变态 oracle 中 空字符串将被等同于NULL所以如果你的字段为NOT NULL的VARCHAR2,那么将不能存储空字符串如果一定要使用空字符串,就必须将列定义为“允许为空” TO:一般是这样的,例如我用 string strID=txtcontent.Text.trim()如果这个输入框没有任何输入,那肯定string strID=""然后存储过程就出错了,不可能对每一个变量都判断吧,有没有针对存储过程修改的方法SQL server就没问题,oracle真变态作个判断:if (str=null || str=""){ //插入时用DBValue.Null即可...} 问题已解决方法跟liujia_0421类似,写了个函数,在赋值前对空字符串进行判断,空的返回system.DBNull.value SQL 语句双引号怎么处理?搞了半天没弄懂这个 新手求助 -见帖子了荣 怎样看.net framework的自带的方法啊? combobox question 求救,如何让多个picturebox变成圆形 C#在那些方面比Java弱!! 请问如何让一个窗体打开的时候自动隐藏? 我想在不同页面点击帮助按钮时,弹出的.chm帮助文件自动打开相应的页面,怎么做呢,谢谢 为什么我的信誉分一天之内变成-5了啊? 谁能给我一些好的页面生成器呀??谢谢了!高分求! 有星星了,散分200,大家都进来坐一坐,今天就结贴... DataSet绑定时的问题,各位高手帮帮忙~~
string strID;
Dim sqlCmd As OracleCommand = New OracleCommand("update test set name=:name", sqlConn)
sqlCmd.Parameters.Add(":name", OracleType.varchar2).Value = strID
当我的strID未赋值时,这个存储过程就会引起错误
这样写不对吧
strID应该位于add方法里面吧
看看行不
如果这个输入框没有任何输入,那肯定string strID=""
然后存储过程就出错了,不可能对每一个变量都判断吧,有没有针对存储过程修改的方法
SQL server就没问题,oracle真变态
如果这个输入框没有任何输入,那肯定string strID=""
然后存储过程就出错了,不可能对每一个变量都判断吧,有没有针对存储过程修改的方法
SQL server就没问题,oracle真变态作个判断:if (str=null || str="")
{
//插入时用DBValue.Null即可...
}
方法跟liujia_0421类似,写了个函数,在赋值前对空字符串进行判断,空的返回system.DBNull.value