可以直接把DataTable插入到表里面吗,怎么做?

解决方案 »

  1.   

    用OracleDataAdapter,指定一下SelectCommand,用sql语句,即select * from 表明。
    然后用其Update方法保存。前提是要有主键。
    大致这样:
    DataTable dt = new DataTable();
    dt.PrimaryKey = new DataColumn[] { /* dt.Columns[0] 主键列集合 */ };
    OracleConnection con = new OracleConnection("连接字符串");
    OracleDataAdapter da = new OracleDataAdapter("select * from 表明", con);
    new OracleCommandBuilder(da);
    da.Update(dt);
      

  2.   

    把datatable里面的数据遍历出来再往数据库中插入就可以了
      

  3.   

    可以 有个不用遍历 但前提是表名一致,字段和数据类型一致
    详情:
    http://www.cnblogs.com/xyd21c/archive/2011/01/07/1929861.html
      

  4.   

    SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn,SqlBulkCopyOptions.KeepNulls, trans as SqlTransaction);
    bulkCopy.DestinationTableName = "数据库中目标表名";
    bulkCopy.BatchSize = batchSize;
    bulkCopy.BulkCopyTimeout = 300;
    bulkCopy.WriteToServer(dt);
    if (bulkCopy != null)
        bulkCopy.Close();批量破保存数据
      

  5.   

    Sql语句效率最高,但是需要遍历。OracleDataAdapter都是自动的,不需要写代码,所以效率就会低些。
      

  6.   

    只是插入部需要主键,可以把dt.PrimaryKey = new DataColumn[] { /* dt.Columns[0] 主键列集合 */ };
    删掉
      

  7.   


     public DataTable AddDateSave(string strsql)
            {
                SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Xml配置文件的Name"].ToString());
                SqlCommand command = new SqlCommand(strsql, conn);
                SqlDataAdapter adapter = new SqlDataAdapter();
                adapter.UpdateCommand = command;            DataTable table = new DataTable();
                table.Locale = System.Globalization.CultureInfo.InvariantCulture;
                adapter.Fill(table);
                return table;
            }调用方法,把SQL语句传进去
      

  8.   

    错了,应该是 adapter.InsertCommand = command;添加
      

  9.   


    访问的是SQL。不过oracle,同样的道理,生成
    OracleBulkCopy bulkCopy = new OracleBulkCopy(oracleConn,OracleBulkCopyOptions.Default)即可,其他的和SQl一致。
      

  10.   

    OracleBulkCopy bulkCopy = new OracleBulkCopy(oracleConn,OracleBulkCopyOptions.Default)即可,其他的和SQl一致。OracleBulkCopy 怎么用啊