c# – 无法使用SqlBulkCopy从Excel读取第一行

我使用以下代码将Excel文件更新为SQL Server.代码正在运行,但无法将第一行插入表中.

OleDbConnection OleDb = new OleDbConnection(ConnectionString);
OleDbCommand OleDbCmm = new OleDbCommand(Query,OleDb);
OleDbDataReader OleDbdr;
OleDb.Open();

if (OleDb.State == ConnectionState.Open)
{
    OleDbdr = OleDbCmm.ExecuteReader();
    SqlBulkCopy BulkCopy = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["connstring"].ToString());
    BulkCopy.DestinationTableName = "TempTable";

    if (OleDbdr.Read())
    {
       BulkCopy.WriteToServer(OleDbdr);
    }
 }

 OleDb.Close();

解决方法:

即使我遇到同样的问题,这也是因为我正在使用如下的Read()方法.

           while (dr.Read())
            {
                bulkcopy.WriteToServer(dr);
            }

解决上述问题的方法是删除dr.Read()方法和while循环
使用
bulkcopy.WriteToServer(DR)
没有任何条件和Read()方法.

上一篇:c# – SQLBulkCopy不复制主键


下一篇:导致死锁的SQLBulkCopy