参数化查询,枚举转换int类型出错

clipboard.png

数据库中的设计是可为空的
int类型改成 int? 的话又可以执行了
这是什么错误

错误信息:

clipboard.png

clipboard.png

阅读 3.4k
2 个回答

SqlParameter不需要自己转换int类型,函数会自动识别并且转换枚举值。
这种情况下直接传递枚举值进去就可以了。

不改成int?报错,数据库肯定没有把允许空勾上。
实体模型应该与数据库保持一致。
比如:数据库中是可空类型,那么手写的实体也要可空。(可以找工具生成撒
如果数据库中是不可空,请一定要填写数据库默认值,这样的话,在入库的时候,就算你没写值,也不会报错。
做好几下几点:
1.所有字符型数据为扩展需要必须使用 nvarchar,并且不允许空,同时设置默认值(‘’),注意是在新建表情况下
2.所有数字型(int,smallint,tinyint,decimal)除特殊情况外,均不允许为空,并设置默认值,无确定默认值时设置为 0
3.日期型统一使用(datetime)格式,默认值设为: getdate() ,或 ‘1900-1-1’,或‘2000-1-1’,具体据业务需求设置默认值
4.不建议用 nvarchar(max) 类型的字段,这样查询一个list,会非常耗时.

以上是自己所在公司的一些规范,手打,求给好评,如果其他意见请回复~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进