すべてを、定義することなく、バルク・コピーを使用する方法 宛先表
私は次のようBulkCopy
操作を持っている
strConnectionString
が定義されており、有効な接続文字列をある
// 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);
。これは、テーブルstrTableName
が存在し、フィールドが定義されているときに過去に正常に機能しています。実行時に定義されたDataTable
でこのBulkCopy
操作を実行することにしました。つまり、SQLで表構造を事前定義する必要はありません。これは可能ですか?もしそうなら、どうですか?
お時間をいただきありがとうございます。
テーブルを作成し、そのデータテーブルからデータを一括してロードしたいのですか? (つまり、テーブルはSQL Serverには存在しません)。 –
つまり、ユーザにテーブル名を尋ねると、あなたのプログラムは実際に 'c1ErrFlexGrid.DataSource'と同じスキーマを持つテーブルを作成してそれを作成しますか? – dsolimano
はい両方とも正しいです... SQL Serverにテーブルが存在する場合、上記のコードは機能します。私はテーブルが現在存在しないときに、それを事前に定義することなく、 'DataTable'をSQL Serverに一括ロードする方法を知りたいと思います。 – MoonKnight