本帖最后由 txloffice 于 2010-03-24 08:51:03 编辑

解决方案 »

  1.   

    rdr是个只进的游标吧。while (rdr.Read())
    {
    MessageBox.Show((string)rdr["stor_name"]);
    }你都把数给读完了,还怎么copy啊?
      

  2.   

    呃,你只选了一列?bc.ColumnMappings.Add......加个源表到目的表的列映射吧。bulkcopy默认是从第一列开始copy的。还有就是跟踪下你的reader到底有没有抓到数。这个是没问题的。
      

  3.   

    connection.Open();
    DbDataReader rdr = cmd.ExecuteReader();
    SqlBulkCopy bc = new SqlBulkCopy(bulkCopyConnection);
    bulkCopyConnection.Open();
    bc.DestinationTableName = "StoreList";
    bc.WriteToServer(rdr);
    rdr.close();
    connection.Close();
    bulkCopyConnection.Close();
      

  4.   

    感谢: LS的各位,尤其是fskang!
    狂喜:我终于找到原因,这个所谓微软的高级砖家可是忽悠了我们一把!
    原因就是:目标表结构有问题,在此例中,目标表也只能有一列,应该和源表那列结构是一样的!!!
    解决方法:直接在SQL Server 2005中在BulkCopy中生成一个具有stor_name列的表storelist!
    结贴:加分加分!