【C#】DataSet中的数据更新,不使用for循环或者foreach循环实现

private int UpdateT002SiireData()
{
// SQL
var sbSQL = new StringBuilder();

    sbSQL.AppendLine(" UPDATE ZHT003 SET ");
    sbSQL.AppendLine(" 	STATUS =:STATUS ");
    sbSQL.AppendLine(" ,BIKO =:BIKO");
    sbSQL.AppendLine(" ,SAGYO_FLG =:SAGYOFLG");
    sbSQL.AppendLine(" ,UPD_DATE =:UPDDATE");
    sbSQL.AppendLine(" ,UPD_CD =:UPDCD");
    sbSQL.AppendLine(" ,UPD_PG =:UPDPG");
    sbSQL.AppendLine(" ,UPD_PC =:UPDPC");
    sbSQL.AppendLine(" ,UPD_CNT = UPD_CNT + 1");
    sbSQL.AppendLine(" WHERE JUCHU_KANRI_NO = :JUCHU_KANRI_NO ");
    sbSQL.AppendLine("   AND HACHU_MEISAI_NO = :HACHU_MEISAI_NO ");
    sbSQL.AppendLine("   AND HACHU_NO = :HACHUNO ");
    sbSQL.AppendLine("   AND BUNNO_NO = :BUNNONO ");
    sbSQL.AppendLine("   AND REN_NO = :RENNO ");


    // 执行
    var cmd = new OracleCommand();
    cmd.Connection = this.DbConnection;
    cmd.BindByName = true;
    cmd.CommandText = sbSQL.ToString();
    cmd.ArrayBindCount = dsMeisai.Z6030010_02.Count;
	// 下边一句是最主要得语句
    var rows = dsMeisai.Z6030010_02.AsEnumerable();
    cmd.Parameters.Add(":STATUS", OracleDbType.Char).Value = rows.Select(r => r.STATUS).ToArray();
    cmd.Parameters.Add(":BIKO", OracleDbType.Char).Value = rows.Select(r => r.BIKO).ToArray();
    cmd.Parameters.Add(":SAGYOFLG", OracleDbType.Char).Value = rows.Select(r => r.SAGYOFLG).ToArray();
    cmd.Parameters.Add(":JUCHU_KANRI_NO", OracleDbType.Char).Value = rows.Select(r => r.JUCHUKANRINO).ToArray();
    cmd.Parameters.Add(":HACHU_MEISAI_NO", OracleDbType.Char).Value = rows.Select(r => r.HACHUMEISAINO).ToArray();
    cmd.Parameters.Add(":HACHUNO", OracleDbType.Char).Value = rows.Select(r => r.HACHUNO).ToArray();
    cmd.Parameters.Add(":BUNNONO", OracleDbType.Char).Value = rows.Select(r => r.BUNNONO).ToArray();
    cmd.Parameters.Add(":RENNO", OracleDbType.Char).Value = rows.Select(r => r.RENNO).ToArray();
    cmd.Parameters.Add(":UPDDATE", OracleDbType.Char).Value = rows.Select(r => r.UPDDATE).ToArray();
    cmd.Parameters.Add(":UPDCD", OracleDbType.Char).Value = rows.Select(r => r.UPDCD).ToArray();
    cmd.Parameters.Add(":UPDPG", OracleDbType.Char).Value = rows.Select(r => r.UPDPG).ToArray();
    cmd.Parameters.Add(":UPDPC", OracleDbType.Char).Value = rows.Select(r => r.UPDPC).ToArray();

    if (cmd.ArrayBindCount == 0)
        return 0;

    return cmd.ExecuteNonQuery();
}
### 最主要的C#语句是:
var rows = dsMeisai.Z6030010_02.AsEnumerable();

### lamda表达式
r => r.UPDPC ,这个r相当于是数据源中的DataSet ,通过数据源来获取每一条数据中的对应的值,从而进行赋值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值