c# - SqlBulkTools - 更新
问题描述
当我尝试运行时,我收到此错误:
System.Data.SqlClient.SqlException:“列“列”的定义必须包含数据类型
但我在“业务”类中定义了变量的类型
public void import (String TXT_T_NEG, String TXT_ACAO, String TXT_ESPEC_PAPL, String Txt_num_neg, String Id_usr)
{
lista.Add (new business(TXT_T_NEG, TXT_ACAO, TXT_ESPEC_PAPL, Txt_num_neg, Id_usr)
}
public void bulkupdate ()
{
var bulk = new BulkOperations ();
using (TransactionScope trans = new TransactionScope ())
{
using (SqlConnection cone = new SqlConnection (@"Myconnection"))
{
bulk.Setup <business> ()
.ForCollection (lista)
.WithTable ("table")
.AddColumn (x => x.Txt_t_neg)
.AddColumn (x => x.Txt_acao)
.AddColumn (x => x.Txt_espec_papl)
.BulkUpdate ()
.MatchTargetOn (x => x.Txt_num_neg)
.MatchTargetOn (x => x.Id_usr)
.Commit (cone);
}
trans.Complete ();
}
}
解决方案
当您的类中的属性名称与相应的数据库列之间存在差异时,会引发此异常。该库查询表架构,然后使用它来构建临时表,但如果列名和属性名不匹配,则临时表创建语句将失败,因为它无法指定正确的数据类型。
在这种情况下,如库文档中所述,您必须通过提供列名来定义自定义映射,例如
.AddColumn(x => x.Id_usr, "Id")
推荐阅读
- c# - 如何为删除的文件编写单元测试
- sql - 从 prd 到非 prd 的部分数据刷新
- r - 有没有办法在使用 group_by 分组后重新排序变量的级别?
- android - 适用于 android 的 laravel 5.4 chrome 未显示验证错误
- json - 使用 FiddlerScript (JScript.Net) 将 JSON 响应更改为 null
- ios - 为什么在使用“lazy var”创建实例时出现编译器错误?
- c - 需要 C 语言客户端和服务器编程方面的帮助
- python-3.x - 选择具有类名的特定行
- c# - 在 SelectedValueChange 事件中获取组合框的当前值
- laravel - laravel 中的不同文件类型和一个输入