sqlserver数据可空插入报错

数据库和C#中均为可空类型。

这时候直接给字段赋值为null

parameters[9].Value = null ;

执行的时候报错了,一大堆,总之说它少了一个参数。

用sql server profiler 工具查看执行代码 如下图:

这时候才找到原因:     C#中赋值为null的字段到了数据库执行变成了default。

下面是解决方案:

加一个判断:当字段的值为null时,赋值为DBNull.Value。

parameters[9].Value = model.RedoDate == null ? (object)DBNull.Value : model.RedoDate;

时间: 2024-08-27 19:00:45

sqlserver数据可空插入报错的相关文章

java插入数据至mysql数据库报错:check the manual that coresponds to your mysql server version for the right syntax to use near 'condition)values...解决方案

MySQL5.X(本地数据库) 使用java向表中插入数据时,每次数据库更新,pstm.executeUpdate();就会跳到IO报错,提示原因是sql语法有问题,如题可见 当测试插入数据不含condition字段时,插入成功,尝试更名为conDition时,仍报错 解决方案: 更改condition为conDi,原因可能时因为condition为数据库或java关键字不能使用,更名后不再受影响,插入成功. java插入数据至mysql数据库报错:check the manual that c

数据插入报错Incorrect integer value: '' for column

鄙人不才,在操作数据库存储的时候碰见这样的问题.执行sql语句批量插入数据的时候报错 ? Incorrect integer value: '' for column 'zhuticengshu' at row 1 我的数据库表设计十分的简单:说白了,也就是记录下,以后避免这样的错误发生其中id是自增id,其余的字段都是非主键,执行的时候一直报错 Incorrect integer value: '' for column 'zhuticengshu' at row 1 问题测试 首先将后台打印

Navicat导入数据时发生了报错 --- 1153 - Got a packet bigger than 'max_allowed的处理办法

今天我在使用Navicat导入.sql文件数据时,发现本来是80万条的数据,结果只导入了10万条左右,而且在其错误信息日志中,我发现了这样一条错误:1153 - Got a packet bigger than 'max_allowed. 度娘了一番后,发现越来是我的SQL文件远远大于MySQL默认执行的文件大小,所以执行不过去. 解决方法: 在MySQL安装目录下找到文件my.ini,搜索[mysqld],在其下面添加一句话 max_allowed_packet=521M  ##该处按照自己的

mvc EF 数据保存时,报错:”对一个或多个实体的验证失败……“之解决

在EF5.0添加实体数据到数据库的时候,出现“对一个或多个实体的验证失败.有关详细信息,请参见“EntityValidationErrors”属性这个错误 解决: SaveChanges前先关闭验证实体有效性(ValidateOnSaveEnabled)这个开关 db.Configuration.ValidateOnSaveEnabled = false; int count = db.SaveChanges(); db.Configuration.ValidateOnSaveEnabled =

MO拆分计划行程序中写入PRODUCTIONORDERS表数据出现重复导致报错(BUG)20180502

错误提示:ORA-00001: 违反唯一约束条件 (ABPPMGR.C0248833319_6192)ORA-06512: 在 "STG.FP_MO_SPLIT", line 199  ORA-06512: 在 "STG.FP_MO_SPLIT", line 1318 错误描述:MO拆分计划行程序中写入PRODUCTIONORDERS表数据出现重复导致报错(BUG) 存储过程:FP_MO_SPLIT 解决方法: 原文地址:https://www.cnblogs.co

mysql插入报错:java.sql.SQLException: Incorrect string value: '\xE6\x9D\xAD\xE5\xB7\x9E...' for column 'address' at row 1

界面报错: 日志报错: java.sql.SQLException: Incorrect string value: '\xE6\x9D\xAD\xE5\xB7\x9E...' for column 'address' at row 1 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.17.jar:8.0.17] at com.mys

hive中创建子表并插入数据过程初始化MR报错解决方法

本文继成上一篇通过hive分析nginx日志文章,详情参考下面链接: http://www.cnblogs.com/wcwen1990/p/7066230.html 接着来: 创建业务子表: drop table if exists chavin.nginx_access_log_comm; create table if not exists chavin.nginx_access_log_comm( host STRING, time STRING, request STRING, refe

Sql server的Merge语句,源表中如果有重复数据会导致执行报错

用过sql server的Merge语句的开发人员都应该很清楚Merge用来做表数据的插入/更新是非常方便的,但是其中有一个问题值得关注,那就是Merge语句中的源表中不能出现重复的数据,我们举例来说明这个问题. 现在我们有一张表叫T_Class_A,其建表语句如下: CREATE TABLE [dbo].[T_Class_A]( [ID] [int] IDENTITY(1,1) NOT NULL, [ClassName] [nvarchar](50) NULL, [StudentTotalCo

NSUserDefaults插入报错attempt to insert non-property list object

在使用NSUserDefaults的时候插入数据有时候会报以下错误: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSUserDefaults setObject:forKey:]: attempt to insert non-property list object { array = ( { 481 = { msg = { 1413462307 = "[3