没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
/// <summary>
/// 批量插入数据
/// </summary>
/// <param name="tableName">表名称</param>
/// <param name="columnRowData">键-值存储的批量数据:键是列名称,值是该列对应的数据集合</param>
/// <returns></returns>
public int BatchInsert(string tableName, Dictionary<string,object[]> columnRowData)
{
if (string.IsNullOrEmpty(tableName))
{
throw new ArgumentNullException("tableName", "必须指定批量插入的表名称");
}
if (columnRowData == null || columnRowData.Count < 1)
{
throw new ArgumentException("必须指定批量插入的字段名称", "columnRowData");
}
int iResult = 0;
string[] dbColumns = columnRowData.Keys.ToArray();
StringBuilder sbCmdText = new StringBuilder();
if (columnRowData.Count > 0)
{
// 准备插入SQL
sbCmdText.AppendFormat("INSERT INTO {1} (", tableName);
sbCmdText.Append(string.Join(",", dbColumns));
sbCmdText.Append(") VALUES (");
sbCmdText.Append(":" + string.Join(", :", dbColumns));
sbCmdText.Append(") ");
/// 批量插入数据
/// </summary>
/// <param name="tableName">表名称</param>
/// <param name="columnRowData">键-值存储的批量数据:键是列名称,值是该列对应的数据集合</param>
/// <returns></returns>
public int BatchInsert(string tableName, Dictionary<string,object[]> columnRowData)
{
if (string.IsNullOrEmpty(tableName))
{
throw new ArgumentNullException("tableName", "必须指定批量插入的表名称");
}
if (columnRowData == null || columnRowData.Count < 1)
{
throw new ArgumentException("必须指定批量插入的字段名称", "columnRowData");
}
int iResult = 0;
string[] dbColumns = columnRowData.Keys.ToArray();
StringBuilder sbCmdText = new StringBuilder();
if (columnRowData.Count > 0)
{
// 准备插入SQL
sbCmdText.AppendFormat("INSERT INTO {1} (", tableName);
sbCmdText.Append(string.Join(",", dbColumns));
sbCmdText.Append(") VALUES (");
sbCmdText.Append(":" + string.Join(", :", dbColumns));
sbCmdText.Append(") ");
using (OracleConnection conn = new OracleConnection("数据库连接字符信息"))
{
using (OracleCommand cmd = _oraDbConn.CreateCommand())
{
// 绑定批处理的行数
cmd.ArrayBindCount = columnRowData.Values.First().Length; // 很重要
cmd.BindByName = true;
cmd.CommandType = CommandType.Text;
cmd.CommandText = sbCmdText.ToString();
cmd.CommandTimeout = 600; // 10分钟
// 创建参数
OracleParameter oraParam;
List<IDbDataParameter> cacher = new List<IDbDataParameter>();
OracleDbType dbType = OracleDbType.Object;
foreach (string colName in dbColumns)
{
dbType = this.GetOracleDbType(columnRowData[colName][0]);
oraParam = new OracleParameter(colName, dbType);
oraParam.Direction = ParameterDirection.Input;
oraParam.OracleDbTypeEx = dbType;
oraParam.Value = columnRowData[colName];
cmd.Parameters.Add(oraParam);
}
// 执行批处理
var trans = conn.BeginTransaction();
try
{
cmd.Transaction = trans;
{
using (OracleCommand cmd = _oraDbConn.CreateCommand())
{
// 绑定批处理的行数
cmd.ArrayBindCount = columnRowData.Values.First().Length; // 很重要
cmd.BindByName = true;
cmd.CommandType = CommandType.Text;
cmd.CommandText = sbCmdText.ToString();
cmd.CommandTimeout = 600; // 10分钟
// 创建参数
OracleParameter oraParam;
List<IDbDataParameter> cacher = new List<IDbDataParameter>();
OracleDbType dbType = OracleDbType.Object;
foreach (string colName in dbColumns)
{
dbType = this.GetOracleDbType(columnRowData[colName][0]);
oraParam = new OracleParameter(colName, dbType);
oraParam.Direction = ParameterDirection.Input;
oraParam.OracleDbTypeEx = dbType;
oraParam.Value = columnRowData[colName];
cmd.Parameters.Add(oraParam);
}
// 执行批处理
var trans = conn.BeginTransaction();
try
{
cmd.Transaction = trans;
剩余6页未读,继续阅读
资源评论
- ao_p19912020-01-08不错,很好的资源OWENLI2020-02-20相互学习
OWENLI
- 粉丝: 9
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功