datatable中的数据 存入oracle表中,要求 二者字段名一致,如果不一致,通过这个实现对应: bulkCopy.ColumnMappings.Add("SERVNUMBER", "SN");

首先要引入Oracle.DataAccess.dll文件(在oracle客户端里面有,添加到本网站) 

using Oracle.DataAccess.Client;

代码如下:

    protected void Button2_Click(object sender, EventArgs e)
    {
        using (OracleConnection conn = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["OraConn"].ConnectionString))
        {
            conn.Open();
            DataSet ds = shaodb.getds("select * from shao_tmp80");
            System.Data.DataTable dt = ds.Tables[0];
            using (OracleBulkCopy bulkCopy = new OracleBulkCopy(conn))
            {
                bulkCopy.DestinationTableName = "shao_tmp81";
                // 映射 DataTable 的列到数据库表的列
                bulkCopy.ColumnMappings.Add("SERVNUMBER", "SN"); //映射 DataTable 的列到数据库表的列,格式源列名,目标列名
                bulkCopy.ColumnMappings.Add(0,0); //或者映射用列序号
                bulkCopy.BatchSize = 100000;
                bulkCopy.WriteToServer(dt);
            }
        }

参考:

 OracleBulkCopy 批量插入oracle数据库的方法

http://t.csdnimg.cn/Ho92E

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐