我正在尝试使用以下C#代码确定如何在OracleCommand中将null指定为参数值.我已经摘录了相关的位,但基本上关键是如果sal_id带有值0,它应该存储为null.我试过Null,"Null",以及其他一些东西,但到目前为止还没有运气.
cmd.CommandText = "INSERT INTO tcustomer(cust_id, salutation_id) VALUES(ORADBA.SEQCUST.NEXTVAL, :salid) RETURNING cust_id INTO :newcid" ;
if (sal_id==0) {
cmd.Parameters.Add("salid", Null) ;
} else {
cmd.Parameters.Add("salid", sal_id) ;
}
cmd.Parameters.Add("newcid", OracleDbType.Int32).Direction = ParameterDirection.ReturnValue ;
cmd.ExecuteNonQuery() ;
String newcidval = cmd.Parameters["newcid"].Value.ToString() ;
cmd.Dispose() ;
Run Code Online (Sandbox Code Playgroud)
And*_*are 18
尝试System.DBNull一下null.
DBNull类表示不存在的值.例如,在数据库中,表行中的列可能不包含任何数据.也就是说,该列被认为根本不存在而不仅仅是没有值.DBNull对象表示不存在的列
DBNull不能分配给任何其他数据类型,因此必须将其隐式转换为对象.
cmd.Parameters.Add(new OracleParameter(":number_column", OracleType.Number)).Value = (s.Class.HasValue) ? s.Class.Value : (object)DBNull.Value;
Run Code Online (Sandbox Code Playgroud)
s.Class是int的地方?和参数值设置为(object)DBNull.Valuenull
| 归档时间: |
|
| 查看次数: |
23738 次 |
| 最近记录: |