問題タブ [sqlbulkcopy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - グリッドビューの行をデータテーブルに追加するにはどうすればよいですか?
いくつかの「n」個の行を含むグリッドビューがあります。次に、バルクコピー操作に使用されるデータテーブルにグリッドビューのすべての行を追加します。
私はこれを見つけましたhttp://www.codeproject.com/KB/aspnet/GridView_To_DataTable.aspx
しかし、グリッドビューのすべての列をデータテーブルグリッドのデータ行に追加したい http://img85.imageshack.us/img85/4044/gridp.jpg
送信時にグリッドビューをデータテーブルに変換したい...提案...
編集:
以下の答えはうまくいき、私も答えを見つけました...
c# - Sqlbulkcopyは私にはうまくいかないようです
私はデータテーブルを作成し、SqlBulkCopyを介してそのデータテーブルを挿入しようとしましたが、どういうわけかそれは私にとってはうまくいかないようです...。
エラーが発生しました、
私のデータソースは、
そして、私の宛先テーブルは次のようになります、
sql-server - 既存のキーを持つ DataTable を SQL Server テーブルに挿入する方法
私は VB.NET を使用しています。3 つのフィールドを含む「QUESTION」という DataTable があります。
- QuestionNumber (一意の整数キー)
- 質問テキスト
- 質問の種類
SQL Server データベースで、同じフィールドを持つ「QUESTION」というテーブルを作成しました。QuestionNumber は整数の一意のキーとして定義され、自動インクリメント
ここで、DataTable を SQL Server に挿入するために一括コピーを作成すると、データベースは DataTable から QuestionNumber を上書きし、新しいものを生成します (1 インクリメント 1 から開始)。
元の QuestionNumbers がデータベースにコピーされるように、データベースの設定を変更するにはどうすればよいですか?
sql-server - SQL 一括コピーを使用して挿入されたデータ レコードの ID を取得する方法
DataTable
約 100,000 レコードの ADO.NETがあります。このテーブルには 、SQL Server データベースでxyID
自動生成された列であるため、値のない列があります。IDENTITY
他のプロセス用に生成された ID を取得する必要があります。DataTable
これを SQL Server データベースに一括コピーし、同じ「手順」DataTable
で生成された ID を「入力」する方法を探しています。
SqlBulkCopy
クラスを使用してテーブルに挿入されたレコードの ID 値を取得するにはどうすればよいですか?
c# - SqlBulkCopy とエンティティ フレームワーク
私の現在のプロジェクトは、データ、ビジネス、プレゼンテーションの 3 つの標準レイヤーで構成されています。すべてのデータ アクセス ニーズにデータ エンティティを使用したいと考えています。アプリの機能の一部として、フラット ファイル内のすべてのデータをデータベースにコピーする必要があります。ファイルはそれほど大きくないので、SqlBulkCopy を使用できます。.NET での SqlBulkCopy クラスの使用法に関する記事をいくつか見つけました。ただし、すべての記事は DataTables を使用してデータを前後に移動しています。
SqlBulkCopy と共にデータ エンティティを使用する方法はありますか、それとも DataTables を使用する必要がありますか?
c# - ThreadPoolの問題があるマルチスレッドシナリオでSqlBulkCopyを使用する
私はジレンマに直面しています(!)。
最初のシナリオでは、SQLBulkCopyを同期的に使用して、あるデータベースから別のデータベースにデータを複製するソリューションを実装しましたが、まったく問題はありませんでした。
を使用してThreadPool
、非同期シナリオで同じものを実装し、テーブルごとにスレッドを作成しました。すべて正常に動作しますが、しばらくすると(コピーの操作にほぼ同じ時間がかかるため、通常は1時間)、操作はThreadPool
停止に送信されます。実行されました。スレッドごとに1つの異なるものSQLBulkCopy
を使用する1つの異なるものがあります。SQLConnection
私はすでに空きスレッドの数を確認しており、呼び出しの開始時にそれらはすべて無料です。AutoResetEvent
スレッドがジョブを終了するのを待ってから再度起動する必要があります。また、アクティブなスレッドのカウンターを保持するセマフォFIFOがあります。
SqlBulkCopyを使用するときに、忘れてしまった、または有効にする必要がある問題はありますか?私のアイデアは終わったので、私はいくつかの助けに感謝します;)
->使用法
//一括コピー
#セマフォ
c# - 主キーがない場合にSqlBulkCopyで重複レコードが挿入されないようにする方法
数千のレコードを含む毎日のXMLファイルを受け取ります。各レコードは、レポートと請求に使用するために内部データベースに保存する必要のあるビジネストランザクションです。毎日のファイルには一意のレコードしか含まれていないという印象を受けましたが、一意の定義がプロバイダーの定義とまったく同じではないことがわかりました。
このデータをインポートする現在のアプリケーションはC#.Net 3.5コンソールアプリケーションです。これは、列がXMLレコードの構造と完全に一致するMS SQLServer2008データベーステーブルにSqlBulkCopyを使用してインポートします。各レコードには100を超えるフィールドがあり、データには自然キーがありません。つまり、複合キーとして意味をなすことができるフィールドは、nullも許可する必要があります。現在、テーブルにはいくつかのインデックスがありますが、主キーはありません。
基本的に、行全体が一意である必要があります。1つのフィールドが異なる場合、挿入するのに十分有効です。行全体のMD5ハッシュを作成し、それをデータベースに挿入し、制約を使用してSqlBulkCopyが行を挿入しないようにすることを検討しましたが、MD5ハッシュをBulkCopy操作に取り込む方法がわかりません。操作全体が失敗し、いずれかのレコードが失敗した場合にロールバックするか、それとも続行するかを確認します。
このファイルには非常に多くのレコードが含まれており、XMLで行ごとに移動し、すべてのフィールドに一致するレコードをデータベースに照会してから、挿入を決定することが、これを実行できる唯一の方法です。アプリケーションを完全に書き直す必要がないことを望んでいただけで、一括コピー操作は非常に高速です。
主キーなしで行の重複を防ぎながらSqlBulkCopyを使用する方法を知っている人はいますか?または、これを行うための別の方法についての提案はありますか?
sql-server - DBCC CheckIdent を使用した一括コピー挿入
私たちのチームは、SQL Server 2008 データベースに大量のデータを挿入する必要があります。私たちは良い解決策を探しています。今、私たちはそれを思いつきましたが、私はそれに疑問を持っています. それで、これが良い解決策のように思えるかどうかをここで尋ねています。追加の課題は、それが 4 つのサーバーを介してピアツーピアで複製されたデータベースであることです! :)
挿入する行が 100 万行あるとします。
- 取引開始
- 100 万のテーブルの現在の ident 値を増やします
- 100 万行と正しい ID を備えた DataSet/DataTable を用意する
- データをデータベースに一括コピーする
- トランザクションをコミットする
これは良い解決策でしょうか。同時実行の問題が発生したり、トランザクションが大きすぎたりする可能性があります。
c# - SqlBulkCopyは糖蜜として遅い
C# 経由で一括データをロードする最速の方法を探しています。仕事はしますが遅いこのスクリプトがあります。SqlBulkCopy が最速であるという証言を読みました。
1000 レコード 2.5 秒。ファイルには 5000 から 250k 近くのレコードが含まれています。
テーブル定義:
そしてここにコードがあります
mysql - 一括転送用の MySqlDataAdapter または MySqlDataReader?
.NET 用の MySql コネクタを使用して、MySql サーバーから SQL Server 2008 にデータをコピーしています。
次のいずれかを使用して、他のものよりも優れたパフォーマンスを経験した人はいますか?
- DataAdapter と 500 のチャンクで DataTable に Fill を呼び出す
- 500 のループで DataReader.Read を DataTable に
次に、SqlBulkCopy を使用して 500 の DataTable 行をロードし、MySql レコード セットが完全に転送されるまでループを続けます。
私は主に、適切な量のメモリを使用し、短時間で完了することに関心があります。
どんな助けでも大歓迎です!