如何在.NET中使用SYBASE表中的数组插入批量数据。我不想使用BCP实用程序。
答案 0 :(得分:1)
有点不整洁 您必须使用sp_dboption将其打开 然后你可以使用Select Into来获取数据 你再次关闭选项。 还建议你的drop all之前触发索引等,然后把它们放回去进行任何'冗长的操作...
你是如何联系的,如果你使用ODBC,你可能会有一些乐趣,因为它往往会破坏专有的东西,除非你通过直通。
发现这一点,fater在使用delphi和sybase时记住类似的问题
答案 1 :(得分:0)
您可以看到this示例以了解如何执行insert语句。 然后,您只需要:
或(最佳方式)
一方面注意,这将花费更多时间来做简单的事情 公牛副本!
答案 2 :(得分:0)
经过这么多调查,我发现DataAdapter能够批量插入。它有属性batchsize(我忘了名字)。我们可以指定要在一次行程中插入的行数。应指定DataAdapter插入命令。
答案 3 :(得分:0)
Sybase.AdoNet2.AseClient.dll中名称空间Sybase.Data.AseClient中有AseBulkCopy类
DataTable dt = SourceDataSet.Tables[0];
using (AseBulkCopy bulkCopy = new AseBulkCopy((AseConnection)conn))
{
bulkCopy.BatchSize = 10000;
bulkCopy.NotifyAfter = 5000;
bulkCopy.AseRowsCopied += new AseRowsCopiedEventHandler(bc_AseRowsCopied);
bulkCopy.DestinationTableName = DestTableName;
bulkCopy.ColumnMappings.Add(new AseBulkCopyColumnMapping("id", "id");
bulkCopy.WriteToServer(dt);
}
static void bc_AseRowsCopied(object sender, AseRowsCopiedEventArgs e)
{
Console.WriteLine(e.RowCopied + "Copied ....");
}