c# oracle 事务批量插入数据,[小白求教]c# System.Data.OracleClient 怎么批量插入数据...

[小白求教]c# System.Data.OracleClient 如何批量插入数据

本帖最后由 qq_16664871 于 2014-10-29 17:00:37 编辑

如题,听说可以用SQL拼接语句的方式,但是没找到。。。

ConnString = GetConnString();

OracleConnection connection = new OracleConnection(ConnString);

connection.Open();

string sql = "insert into \"CLIDB\" (ID_,DEVCODE,KKMC,CDMC,KKBH) values (auto_ID.nextval,:DEVCODE,:KKMC,:CDMC,:KKBH)";

String sqlinsert = sql;

OracleCommand oracleCommand = getoracleCommand(sqlinsert, connection);

OracleParameter[] para =

{

new OracleParameter ("DEVCODE", OracleType.VarChar,125),

new OracleParameter (":KKMC", OracleType.VarChar ,255),

new OracleParameter ("CDMC", OracleType.VarChar,255),

new  OracleParameter ("KKBH", OracleType.VarChar,20),

new  OracleParameter ("FXLX", OracleType.VarChar,20)

};

para[0].Value = Info.devcode;

para[1].Value = Info.kkmc;

para[2].Value = Info.cdmc;

para[3].Value = Info.kkbh;

para[4].Value = Info.fxlx;

for (int i = 0; i 

{

oracleCommand.Parameters.Add(para[i]);

}

getoracleInsert(oracleCommand);

/// 

/// 插入Oracle数据

/// 

/// 

private static bool intoScc = false;

public static void getoracleInsert(OracleCommand oracleCommand)

{

try

{

oracleCommand.ExecuteNonQuery();

intoScc = true;

}

catch (Exception ex)

{

intoScc = false;

String message = ex.Message;

WriteMessage("插入数据失败了!" + message);

}

}

求助各界豪杰能手,

10570650.gif

10570650.gif

10570650.gif

10570650.gif

10570650.gif

10570650.gif

10570650.gif

10570650.gif谢谢!!!

------解决思路----------------------

所谓的拼接就是insert into a(......) values (......);insert into a(......) values (......);insert into a(......) values (......)把这个作为sql来执行。

------解决思路----------------------

引用:我现在写的这个参数化拼接就是这样拼的 但是只能一条一条写入

在 info 里面有很多数据 一条一条

我想让在插入前做判断 满足500条时候一次插入,不满足500条有多少插进去多少

insert into a(......) values (......);insert into a(......) values (......);insert into a(......) values (......)做为一句sql执行,不是一句句分开执行,我没试过OracleParameter参数是不是上限,如果有另当别论

------解决思路----------------------

这两种用法一样,关键在于你生成OracleCommand的方式,别用:DEVCODE,采用,:DEVCODE1,,:DEVCODE2累加下去,但你第一列是自增序列,所以我也无法确定同一句sql中多次使用auto_ID.nextval是不是有自增效果,还得靠你自己尝试

------解决思路----------------------

引用:按照我代码里面的 给我些几句 sql 吧 我还是有点不太懂 怎么写 采用,:DEVCODE1,,:DEVCODE2累加下去,我要写500句啊。。。我只是贴出来一部分sql 实际参数20多个呢 。。。。

INSERT INTO CLIDB (ID_,DEVCODE,KKMC,CDMC,KKBH)

select auto_ID.nextval,:DEVCODE1,:KKMC1,:CDMC1,:KKBH1 from dual  union all

select auto_ID.nextval,:DEVCODE2,:KKMC2,:CDMC2,:KKBH2 from dual union all

select auto_ID.nextval,:DEVCODE3,:KKMC3,:CDMC3,:KKBH3 from dual union all

......

就是这样,唯一不能确定的是auto_ID.nextval,这你得自己试一下

参与评论 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值