【C#】C#代码中不使用FOR循环,为SQL进行绑定参数


```csharp
private int InsertData()
    {
        // SQL文を作成する。
        var sbSQL = new StringBuilder();

        sbSQL.AppendLine(" UPDATE ZHT003 SET ");
        sbSQL.AppendLine(" 	STATUS =:STATUS ");
        sbSQL.AppendLine(" ,BIKO =:BIKO");
        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 = :HACHU_NO ");
        sbSQL.AppendLine("   AND BUNNO_NO = :BUNNO_NO ");
        sbSQL.AppendLine("   AND REN_NO = :REN_NO ");


        // Oracle
        var cmd = new OracleCommand();
        cmd.Connection = this.DbConnection;
        cmd.BindByName = true;
        cmd.CommandText = sbSQL.ToString();
        cmd.ArrayBindCount = dsMeisai.Z6040010_02.Count;

        var rows = dsMeisai.Z6040010_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(":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(":HACHU_NO", OracleDbType.Char).Value = rows.Select(r => r.HACHUNO).ToArray();
        cmd.Parameters.Add(":BUNNO_NO", OracleDbType.Char).Value = rows.Select(r => r.BUNNONO).ToArray();
        cmd.Parameters.Add(":REN_NO", 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();
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值