qq_37727187 2024-03-21 10:31 采纳率: 96%
浏览 6
已结题

bulkCopy批量插入数据的时候一直提示错误


  using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
                    {
                        bulkCopy.DestinationTableName = "encasement";

                        DataTable dt = new DataTable();
                        dt.Columns.Add("work_order", typeof(string));
                        dt.Columns.Add("outer_box_code", typeof(string));
                        dt.Columns.Add("inner_box_code", typeof(string));
                        dt.Columns.Add("Product_code", typeof(string));
                        dt.Columns.Add("Gross_weight", typeof(string));
                        dt.Columns.Add("Net_weight", typeof(string));
                        dt.Columns.Add("Commodity_code", typeof(string));
                        dt.Columns.Add("Product_category", typeof(string));
                    
                        dt.Columns.Add("product_sn", typeof(string));
                        dt.Columns.Add("Create_name", typeof(string));
                        dt.Columns.Add("create_time", typeof(DateTime));
                     
                        dt.Columns.Add("factory_name", typeof(string));
                        dt.Columns.Add("Product_name", typeof(string));
                      
                      
                        dt.Columns.Add("weixiang", typeof(string));
                        foreach (var rowModel in dataRows)
                        {
                            DataRow row = dt.NewRow();
                            row["work_order"] = rowModel.work_order;
                            row["outer_box_code"] = rowModel.outer_box_code;
                            row["inner_box_code"] = rowModel.inner_box_code;
                            row["Product_code"] = rowModel.Product_code;
                            row["Gross_weight"] = rowModel.Gross_weight;
                            row["Net_weight"] = rowModel.Net_weight;
                            row["Commodity_code"] = rowModel.Commodity_code;
                            row["Product_category"] = rowModel.Product_category;
                            row["product_sn"] = rowModel.product_sn;
                            row["Create_name"] = rowModel.Create_name;
                            row["create_time"] = rowModel.create_time;
                           
                            row["factory_name"] = rowModel.factory_name;
                            row["Product_name"] = rowModel.Product_name;
                            row["weixiang"] = rowModel.weixiang;
                
                            dt.Rows.Add(row);
                        }

                        // 写入服务器  
                        bulkCopy.WriteToServer(dt);
                    }
  public class EncasementModel
        {
            public string outer_box_code { get; set; }
            public string inner_box_code { get; set; }

            public string work_order { get; set; }
            public string product_sn { get; set; }
            public string Create_name { get; set; }

            public DateTime create_time { get; set; }
            public string Commodity_code { get; set; }
            public string Product_code { get; set; }

            public string Net_weight { get; set; }
            public string Gross_weight { get; set; }
            public string Product_category { get; set; }
            public string Product_name { get; set; }
            public string factory_name { get; set; }
            public string weixiang { get; set; }

        }

提交的时间格式为2024-03-14 11:37:56.3756000,数据库时间的类型为datetime2(7),但是一直提示 The given value of type String from the data source cannot be converted to type datetime2 of the specified target column.是什么原因呢

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-21 10:31
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题:这段代码实现了什么功能?能否逐行说明代码的作用? 答案: 这段代码实现了将一组数据批量写入数据库表的功能。 逐行说明代码的作用: 1.using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection)):使用`SqlBulkCopy`将数据写入数据库中。 2.bulkCopy.DestinationTableName = "encasement";:设置要写入的数据库表名称为`encasement`。 3.DataTable dt = new DataTable();:定义一个`DataTable`对象`dt`。 4.dt.Columns.Add("work_order", typeof(string));:为`DataTable`对象添加名为`work_order`的列。 5.以此类推,为数据表添加其余列。 6.foreach (var rowModel in dataRows):对要写入的数据进行循环。 7.DataRow row = dt.NewRow();:定义一个新的数据行。 8.以此类推,将数据行填充到`DataTable`对象中。 9.dt.Rows.Add(row);:将数据行添加到`DataTable`对象中。 10.bulkCopy.WriteToServer(dt);:使用`SqlBulkCopy`将填充好的`DataTable`对象写入数据库表中。 11.定义一个数据模型类`EncasementModel`,用于存储数据。 以上是逐行解释代码的作用的回答。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月6日
  • 已采纳回答 8月29日
  • 创建了问题 3月21日

悬赏问题

  • ¥15 宝塔ssl证书一直待待验证
  • ¥15 相近语义 不同表达 匹配
  • ¥15 [vasp+phonopy]表面模型的间隙扩散系数中尝试频率如何用声子频率计算
  • ¥15 现在新建了一个f1的就不行了包括所有新建的项目都无法生成,路径命名都没问题,keil和cubemx重装过还是不行,如何解决?(标签-java|关键词-固件)
  • ¥15 web前端开发怎么实现像图片这样的页面啊?
  • ¥15 ubuntu 20.04 网卡启用后,只有ipv6 没有 ipv4 无法上网
  • ¥15 QT任务管理器无法正确获取展开,有悬赏15元速求,如何解决?(相关搜索:标识符|结构体)
  • ¥15 使用delphi 10.3+intraweb 生成的页面怎么实现自动滚屏
  • ¥20 思科:Router c3600 MN-4E插槽
  • ¥15 16进制修改视频的元数据