.net 项目TVP批量操作遇到问题

异常信息如下:

1:The conversion of a datetime2 data type to a datetime data typeresulted in an out-of-range value.

2:The data fortable-valued parameter "@TVP_TVPName" doesn‘t conform to thetable type of the parameter,The statement has been terminated.

ps:

DateTime——日期从1753年1月1日到9999年12月31日

DateTime2——日期0001年01月01日到9999年12月31日

实现描述:

获取表中的id主键List<T>列表,通过List列表构造DataTable,TVP批量删除表中指定数量数据

问题描述:

在构造DataTable时,由于只获取了主键id字段,且数据库中涉及如期格式的字段类型为datetime,约束为not null,通过调试发现获得的数据表对象中日期默认值为0001/1/1 0:00:00,超出了datetime的范围,在执行TVP操作前,datatable数据会被序列化传输,此时日期会被序列化为null,导致TVP操作异常

解决方法:

1. 更改数据库日期字段类型为datetiem2

2.获取涉及到日期的所有字段

3. 在构造datatable时,将用到的字段合法初始化,用不到的字段置null

时间: 2024-07-28 12:21:09

.net 项目TVP批量操作遇到问题的相关文章

【实战小项目】python开发自动化运维工具--批量操作主机

有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练,本篇演示用Python写一个批量操作主机的工具,大家空余时候可以试着写写,完善完善. 1 思路分析 在运维工作中,古老的方式部署环境.上线代码可能都需要手动在服务器上敲命令,不胜其烦.所以,脚本,自动化工具等还是很有必要的.我觉得一个批量操作工具应该考虑以下几点: (1)本质上,就是到远程主机上执行命令并返回结果. (2)做到批量.也就是要并发

(19)ElasticSearch java项目中的批量操作mget和bulk

1.查询索引是index1,类型是blog,id是8.10和索引是lib3,类型是user,id是1.2.3的文档 @Test public void testMultiGet() throws IOException, InterruptedException, ExecutionException { //指定集群 Settings settings = Settings.builder().put("cluster.name","my-application"

最火的.NET开源项目

综合类 微软企业库 微软官方出品,是为了协助开发商解决企业级应用开发过程中所面临的一系列共性的问题, 如安全(Security).日志(Logging).数据访问(Data Access).配置管理(Configuration Manage)等,并将这些广泛使用的应用程序块集成封装至一个叫企业库的程序包中 CommonLibrary.net 一个帮助类库,包含了ActiveRecord, Csv, Command Line Parsing, Configuration, Validation,

直接拿来用,最火的.NET开源项目(beta)

转自:http://blog.csdn.net/ltylove2007/article/details/18656971 综合类 微软企业库 微软官方出品,是为了协助开发商解决企业级应用开发过程中所面临的一系列共性的问题, 如安全(Security).日志(Logging).数据访问(Data Access).配置管理(Configuration Manage)等,并将这些广泛使用的应用程序块集成封装至一个叫企业库的程序包中 CommonLibrary.net 一个帮助类库,包含了ActiveR

批量操作

在前台我们选择了多条记录,这时候需要将list传回后台,下面的方法可以解决. 这是我在项目中遇到的问题,百度老久,可能检索不到位,没有找到满意的答案,最后,自己研究出来,其实很简单. <table width="1108px" id="ListArea" border="100" class="t1" align="center" cellpadding="0" cellspaci

直接拿来用,最火的.NET开源项目

综合类 微软企业库 微软官方出品,是为了协助开发商解决企业级应用开发过程中所面临的一系列共性的问题, 如安全(Security).日志(Logging).数据访问(Data Access).配置管理(Configuration Manage)等,并将这些广泛使用的应用程序块集成封装至一个叫企业库的程序包中 CommonLibrary.net 一个帮助类库,包含了ActiveRecord, Csv, Command Line Parsing, Configuration, Validation,

Hibernate批量操作(一)

在项目的开发过程之中,我们常会遇到数据的批量处理问题.在持久层采用Hibernate框架时,在进行批量操作时,需要考虑Hibernate实现机制带来的一些问题. 我们知道在每个Hibernate Session中都维持了一个必选的数据缓存,所有保存的实例都将保存在Session缓存中,这个缓存随着Session的创建而存在,随着Session的销毁而消亡.这个内部缓存正常情况下是由Hibernate自动维护的,并且没有容量限制.在批量插入与更新时,由于每次保存的实体都会保存在Session缓存中

MyBatis的几种批量操作

MyBatis中批量插入 方法一: <insert id="insertbatch" parameterType="java.util.List"> <selectKey keyProperty="fetchTime" order="BEFORE" resultType="java.lang.String"> SELECT CURRENT_TIMESTAMP() </selec

.NET开源项目全集 (转)

综合类 微软企业库 微软官方出品,是为了协助开发商解决企业级应用开发过程中所面临的一系列共性的问题, 如安全(Security).日志(Logging).数据访问(Data Access).配置管理(Configuration Manage)等,并将这些广泛使用的应用程序块集成封装至一个叫企业库的程序包中 CommonLibrary.net 一个帮助类库,包含了ActiveRecord, Csv, Command Line Parsing, Configuration, Validation,