因为需要大量插入数据,linq ef无法达到速度的要求,因此把模型转换成SQL ,使用SqlBulkCopy快速插入.但是去提示 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 smalldatetime 排查了很久才发现,模型的字段顺序和表的字段顺序不一致,导致varchar类型的数据对应成了smalldatetime的数据而造成了溢出.…
今天做批量插入的时候,SQLSERVER总是报错,错误提示“来自数据源的String类型的给定值不能转换为指定目标列的类型 uniqueidentifier”. 首先核对了一下定义的dataTable中的DataColumn[]的顺序和数量,发现和数据库的表结构是一致的,而且把代码中对dataRow[]对应位置赋值的语句屏蔽后,执行成功. 因此可以确定主要还是由于类型转换的时候的问题. 后来,在对dataRow[]对应位置赋值的时候,强行用new Guid()方法把String类型转成GUID类…
.TrimEnd() 怀疑是否SqlBulkCopy是否存在某种bug,故而在系统中改写代码,用单个sql的插入数据方式,用循环逐条导入.结果是没问题.难道真的是SqlBulkCopy有某种bug?上网搜了一通,竟没有一条说有什么bug之类的. 偶然一次发现,len函数取数据长度是去了尾部空格的.故而在代码中对用于批量导入的数据,导入前进行一次遍历,将该字段中数据用TrimEnd()去尾部空格.结果批量导入成功了! 其他: 1,首先检查数据库表的字段是否过小 2,检查数据中是否有类似单引号的数据…
dr["description"] = ds.Tables[0].Rows[i]["组织描述"].ToString();                dr["groupuser"] = ds.Tables[0].Rows[i]["组织成员"].ToString();                dr["userid"] = AMSession.LoginUser.id;                d…
在将txt文本格式的数据导入到数据库中时候,使用的是SqlBulkCopy.但是出现了多处错误,在网上查到得资料如下: 错误一:来自数据源的 String 类型的给定值不能转换为指定目标列的类型 nvarchar. 还有其他的错误如:AddTime不能为DBNull (这个应该是目标表中AddTime要求不许为null),哈哈,错误多了,都忘记了... 可能的原因有两种 可能是有"'"(单引号),替换成““”(双引号). 可能是目标表字段的长度比要导入的数据长度小. 错误二:给定的 C…
通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下.   其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk insert T_Demo From 'D:\2.txt' With ( fieldterminator=',', rowterminator='\n' ) 1) bulk insert:  为Sql server 中一个批量插入的操作 2)T_Demo:   要插入的表 3)'D:\2.txt':  …
在C#中,我们可以使用sqlBulkCopy去批量插入数据,其他批量插入方法不在讨论. 1 /// <summary> 2 /// SqlBulkCopy批量插入数据 3 /// </summary> 4 /// <param name="connectionStr">链接字符串</param> 5 /// <param name="dataTableName">表名</param> 6 ///…
原文:SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法 在new SqlBulkCopy对象的时候,设置一下SqlBulkCopyOptions选项即可,按位或运算 SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions.CheckConstraints using (SqlBulkCopy bulkCopy = new SqlBulkCopy(GlobalString.ConnectionString, SqlBulkCopy…
首先创建一个数据库连接类:SQLHelper using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Data; namespace insetData { public class SQLHelper { public static readonly string Strconn = "Data…