sqlbulktools-更新

ep6jt1vc  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(521)

当我尝试运行时,出现以下错误:
system.data.sqlclient.sqlexception:'列'column'的定义必须包含数据类型
但是我在“business”类中定义了变量的类型

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 ();
        }
}
yzckvree

yzckvree1#

当类中的属性名与相应的数据库列之间存在差异时,会引发此异常。库查询表架构,然后使用该架构构建临时表,但是如果列和属性名称不匹配,临时表创建语句将失败,因为它无法指定正确的数据类型。
在这种情况下,如库文档中所述,必须通过提供列名来定义自定义Map,例如。

.AddColumn(x => x.Id_usr, "Id")

相关问题