C# 如何在不定义目标表的情况下使用BulkCopy

C# 如何在不定义目标表的情况下使用BulkCopy,c#,sql,datatable,sqlbulkcopy,C#,Sql,Datatable,Sqlbulkcopy,全部, 我有以下BulkCopy操作: // Convert the FlexGrid to a DataTable. DataTable currData = (DataTable)c1ErrFlexGrid.DataSource; // Insert the data into the database. SqlBulkCopy SqlBulkIns = new SqlBulkCopy(strConnString, SqlBulkCopyOptions.Default); SqlBulkI

全部,

我有以下
BulkCopy
操作:

// Convert the FlexGrid to a DataTable.
DataTable currData = (DataTable)c1ErrFlexGrid.DataSource;

// Insert the data into the database.
SqlBulkCopy SqlBulkIns = new SqlBulkCopy(strConnString, SqlBulkCopyOptions.Default);
SqlBulkIns.BatchSize = 5000;
SqlBulkIns.DestinationTableName = String.Format("dbo.{0}", strTableName);
SqlBulkIns.WriteToServer(currData);
其中,
strConnectionString
是定义的有效连接字符串。在过去,当表
strTableName
存在并且定义了字段时,这种方法工作得很好。现在,我希望在运行时定义的
DataTable
上执行此
BulkCopy
操作;也就是说,不必在SQL中预定义表结构。这可能吗?如果是,怎么做


谢谢您的时间。

您可以使用此对象从datatable创建SQL表,然后运行大容量插入。

您的意思是要创建一个表并从datatable将数据大容量加载到该表中吗?(即,sql server中不存在该表)?您的意思是,您希望向用户请求一个表名,并且您的程序将实际使用与
c1ErrFlexGrid.DataSource
相同的架构创建一个表,然后填充它吗?是的,您都是对的。。。如果SQL Server中存在该表,则上述代码有效。我想知道,如果当前不存在
数据表,如何在不预先定义的情况下将该表批量加载到SQL Server中。除了提前手动创建表(基于您的数据表架构),没有简单的方法可以做到这一点。您需要一些代码来检查表是否存在,如果不存在,则创建它。我担心有人会这么说!谢谢你抽出时间。如果你能回答这个问题,我会很乐意接受…很好的图书馆!我打算建议(基本上)对其进行编码+1代表懒惰。+1这实际上是我最后做的事。5天太晚了,但这是一个伟大的发现!谢谢你的帮助!如果DBF文件不断更改怎么办?我想在写入表之前动态创建表。链接不再起作用。有镜子吗?也许这个链接可以作为一个新的类;我以前没有机会看到上面提到的课程,所以我只是发布我发现有用的内容: