我有一个包含很多行(超过一亿)的 DataTable,并且正在编写一个需要插入该表的应用程序。
我将使用 OleDbDataAdapter 来完成这项工作,我很困惑最好的方法是什么。我只需要插入到这个巨大的表中,但是我不想将插入语句硬编码到应用程序中。
我想我可以用
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand("select * from table_name");
OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
...
adapter.Fill(data_set_name, "Table_name");
但这真的很糟糕,因为我不需要/想要数据并且内存使用会很糟糕。所以如果我可以用 TOP 更改 SelectCommand,我会很有趣吗?它看起来像这样:
adapter.SelectCommand = new OleDbCommand("select TOP 1 * from table_name");
现在 Fill 命令会非常快,并且我将拥有所有未来插入语句所需的数据。我可以将行添加到数据表,然后调用
adapter.Update(data_set_name, "Table_name");
这行得通吗?这是一种有效/推荐的方法吗?应用程序快速且仅使用必要的资源非常重要。有没有更好的方法来做到这一点?
谢谢您的意见!