我有以下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中預定義表結構。這可能嗎?如果是這樣,怎麼樣?
謝謝你的時間。
你的意思是你想創建一個表並從數據表中批量加載數據到數據表中嗎? (即表中不存在sql服務器)? – 2012-01-18 16:24:38
你的意思是,你想問用戶一個表名,你的程序實際上會創建一個與'c1ErrFlexGrid.DataSource'具有相同模式的表,然後填充它嗎? – dsolimano 2012-01-18 16:25:43
是的,你們都是對的......如果表格存在於SQL Server中,則上述代碼有效。我想知道如何在表中當前不存在的情況下將'DataTable'批量加載到SQL Server中,而無需預先定義它。 – MoonKnight 2012-01-18 16:26:48