• C# + Oracel 批量插入数据(List,Array等)


    1. static OracleConnection OpenConn()
    2. {
    3. string connstr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=***.***.***.***)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=***)));Persist Security Info=True;User ID=***;Password=***;";
    4. OracleConnection conn = new OracleConnection();
    5. conn.ConnectionString = connstr;
    6. conn.Open();
    7. return conn;
    8. }
    9. public bool insert(string tableName, IList list, int length)
    10. {
    11. string sql = "INSERT INTO " + tableName + "(XH,MMSI,UTC,LAT,LON,SOG,COG,UDATE) values(SEQ_SHIPPOINT.Nextval,:MMSI,:UTC,:LAT,:LON,:SOG,:COG,:UDATE)";
    12. //string sql = "INSERT INTO " + tableName + "({0}) values(SEQ_SHIPPOINT.Nextval,{1})";
    13. using (OracleConnection conn = OpenConn())
    14. {
    15. try
    16. {
    17. int returnrow = 0;
    18. int recordCount = list.Count;
    19. using (OracleCommand cmd = conn.CreateCommand())
    20. {
    21. cmd.CommandText = sql;
    22. cmd.ArrayBindCount = recordCount; //指定单次需要处理的条数
    23. //注意,这里的值是数组
    24. cmd.Parameters.Add(new OracleParameter(":MMSI", OracleDbType.Varchar2, ParameterDirection.Input)).Value = list.Select(x => x.mmsi).ToArray(); //item.Name;
    25. cmd.Parameters.Add(new OracleParameter(":UTC", OracleDbType.Long, ParameterDirection.Input)).Value = list.Select(x => x.utc).ToArray();
    26. cmd.Parameters.Add(new OracleParameter(":LAT", OracleDbType.Long, ParameterDirection.Input)).Value = list.Select(x => x.lat).ToArray();
    27. cmd.Parameters.Add(new OracleParameter(":LON", OracleDbType.Long, ParameterDirection.Input)).Value = list.Select(x => x.lon).ToArray();
    28. cmd.Parameters.Add(new OracleParameter(":SOG", OracleDbType.Long, ParameterDirection.Input)).Value = list.Select(x => x.sog).ToArray();
    29. cmd.Parameters.Add(new OracleParameter(":COG", OracleDbType.Long, ParameterDirection.Input)).Value = list.Select(x => x.cog).ToArray();
    30. cmd.Parameters.Add(new OracleParameter(":UDATE", OracleDbType.Date, ParameterDirection.Input)).Value = list.Select(x => x.udate).ToArray();
    31. returnrow = cmd.ExecuteNonQuery();
    32. }
    33. return returnrow > 0;
    34. }
    35. catch (Exception ex)
    36. {
    37. //LogHelper.WriteErrLog("insertOracle", ex.Message);
    38. return false;
    39. }
    40. }
    41. }

  • 相关阅读:
    Vue代码规范
    b站pink老师JavaScript的移动端网页特效 案例代码——移动端轮播图+返回顶部模块
    Go语言高级特性解析与实践
    汇舟问卷:想要挣钱?海外问卷调查不容错过!
    tidymodels用于机器学习的一些使用细节
    移动测试Appium安装
    全面总结 pip install 与 conda install 的使用区别
    Modbus通信协议介绍以及Modbus Poll、Slave软件使用介绍
    揭秘C语言的心脏:深入探索指针与数组的奥秘
    DTFT和DFT有何区别?一文为你讲解清楚
  • 原文地址:https://blog.csdn.net/ttbat/article/details/126711526