【发布时间】:2014-03-27 04:44:05
【问题描述】:
我想将某些数据写入我的 excel 文件,为此我正在使用 OLEDB。
我有大量数据,大概有 50000 到 60000 条记录。
目前我的代码如下所示:
string connectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0; Data Source ={0};Extended Properties ='Excel 12.0 Xml;HDR=YES;Mode=ReadWrite';", filePath);
using (OleDbConnection cn = new OleDbConnection(connectionString))
{
String statement = "UPDATE [Sheet1$] SET [Status] = @Status, [Count] = @count WHERE [ID] = @Id";
cn.Open();
for (int index = 0; index < _listResult.Count; index++)
{
OleDbCommand cmd = new OleDbCommand(statement, cn);
cmd.Parameters.AddWithValue("@Status", _listResult[index].Status);
cmd.Parameters.AddWithValue("@count", _listResult[index].Count);
cmd.Parameters.AddWithValue("@Id", _listResult[index].Id);
cmd.ExecuteNonQuery();
}
cn.Close();
但如果我这样做,则数据不会更新到 excel 表中。
相反,我在内外移动 For 循环,打开连接并执行查询,然后它工作正常。但这需要很多时间。
我在这里做错了吗?
请给我适当的方法来实现这一点。
任何帮助将不胜感激。
注意:刚才我发现以下代码在我从 Visual Studio 运行应用程序时正在工作,但是当我从那里进行发布构建并运行它时,它不会将数据写入excel表格。请帮忙。
谢谢
【问题讨论】:
-
嗨,您还需要这方面的帮助吗?
标签: excel c#-4.0 oledb oledbconnection