厳密に型指定されたデータセットでバッチ更新を行うことは可能ですか?厳密に型指定されたデータセットを作成すると、UpdateBatchSizeはオプションではないようです。バルク更新は強く型付けされたデータセットですか?
3
A
答えて
3
このプロパティをDataAdapterに追加しようとしましたか?例えば、プロパティUpdateBatchSizeで自動生成されたアダプタクラスを拡張(
まだ
テストされていません):
Namespace DataSet1TableAdapters
Partial Public Class AddressTableAdapter
Public Property UpdateBatchSize() As Integer
Get
Return Me.Adapter.UpdateBatchSize
End Get
Set(ByVal value As Integer)
Me.Adapter.UpdateBatchSize = value
If value <> 1 Then
Me.Adapter.UpdateCommand.UpdatedRowSource = UpdateRowSource.None
Me.Adapter.InsertCommand.UpdatedRowSource = UpdateRowSource.None
Me.Adapter.DeleteCommand.UpdatedRowSource = UpdateRowSource.None
Else
Me.Adapter.UpdateCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord
Me.Adapter.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord
Me.Adapter.DeleteCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord
End If
End Set
End Property
End Class
End Namespace
は、あなたが拡張したい名前空間の名前と部分アダプタクラスのための自動生成designer.cs/vb
に見てください一括更新機能を使用して、データセットと同じ名前のファイルに入れますが、designer
は含まれません。あなたが私に従うことができない場合は、見てくださいhere。
C#
namespace DataSet1TableAdapters
{
public partial class AddressTableAdapter
{
public int UpdateBatchSize {
get { return this.Adapter.UpdateBatchSize; }
set {
this.Adapter.UpdateBatchSize = value;
if (value != 1) {
this.Adapter.UpdateCommand.UpdatedRowSource = UpdateRowSource.None;
this.Adapter.InsertCommand.UpdatedRowSource = UpdateRowSource.None;
this.Adapter.DeleteCommand.UpdatedRowSource = UpdateRowSource.None;
} else {
this.Adapter.UpdateCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord;
this.Adapter.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord;
this.Adapter.DeleteCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord;
}
}
}
}
}
ことが
を動作する場合、あなたが直接、自動生成されたファイルを変更することはできませんので、それが変更に自動的に再生成されますので、それだけで、私が説明したように動作します。
:thisを読んだ後、私は上記のコードを変更してUpdatedRowSource
プロパティを適切に設定しました。次のコードでテスト
:
Dim stopWatch As New Stopwatch
Dim da As New DataSet1TableAdapters.AddressTableAdapter
Dim tblAllAdresses As New DataSet1.AddressDataTable
Dim tsBS1, tsBS0 As TimeSpan
da.Fill(tblAllAdresses)
da.UpdateBatchSize = 1
For Each adrr As DataSet1.AddressRow In tblAllAdresses
adrr.ModifiedDate = Date.Now
Next
stopWatch.Start()
Dim addressesChanged As Int32 = da.Update(tblAllAdresses)
stopWatch.Stop()
tsBS1 = stopWatch.Elapsed
da.UpdateBatchSize = 0 '0 means maximum server can handle'
For Each adrr As DataSet1.AddressRow In tblAllAdresses
adrr.ModifiedDate = Date.Now
Next
stopWatch.Restart()
addressesChanged = da.Update(tblAllAdresses)
stopWatch.Stop()
tsBS0 = stopWatch.Elapsed
Console.WriteLine("tsBS1: " & tsBS1.Minutes & ":" & tsBS1.Seconds & ":" & tsBS1.Milliseconds) '12 seconds'
Console.WriteLine("tsBS0: " & tsBS0.Minutes & ":" & tsBS0.Seconds & ":" & tsBS0.Milliseconds) '9 seconds(on localhost!)'
関連する問題
- 1. 強く型付けされたデータセットは、CastException
- 2. エンタープライズライブラリの使用データアクセスアプリケーションブロック(強く型付けされたデータセット)
- 3. タイムアウトの質問。強く型付けされたデータセットとオブジェクトデータソース
- 4. 強く型付けされたURLアクション
- 5. 強く型付けされたRadioButtonlist
- 6. 強く型付けされたList.GroupBy()
- 7. 誰がビルドするのが良いですか?データ型が強く型付けされたデータセットまたはクラス
- 8. 強く型付けされたデータセットアダプタの更新では、新しい行が挿入されません。
- 9. 強く型付けされたクライアント側の言語ですか?
- 10. 強く型付けされたデータセットAdapter.Update行を挿入しない
- 11. 余分な列を持つ強く型付けされたデータセットをシリアライズ
- 12. 強く型付けされたデータセットに対してLINQクエリが遅い
- 13. MongoDBドライバC#強く型付けされたネストされたインデックス
- 14. 動的型と強く型付けされた要素
- 15. 本当に強く型付けされた型のプロバイダ
- 16. 強く型付けされたSparkデータセットでは、どのようにWindow Aggrgateを使用しますか?
- 17. は、モデルパラメータは、強く型付けされたコンテナモデル
- 18. 強く型付けされたデータセットでは、テーブルのマッピングに問題はありませんか? C#.net 2.0
- 19. C#MongoDBドライバは強く型付けされたフィルタの使用
- 20. 強く型付けされたカスタムヘルパーメソッドを作る方法は?
- 21. 強く型付けされた言語の違いは?
- 22. 強い型付けされたコンテナ
- 23. ASP.Net MVC複数のモデルで強く型付けされたビュー
- 24. コントローラで強く型付けされたモデルの "キー"を取得
- 25. 強く型付けされたビューはいつ使うべきですか?
- 26. 強く型付けされたフィールドをループするEntity Framework c#
- 27. 強く型付けされたwmiサブフォルダを取得する
- 28. `ActionExecutingContext`から強く型付けされたコントローラを入手できますか?
- 29. MVCアプリケーションで強く型付けされたビューで特定の行のデータを取得する方法..? (クラス名と強く型付けされたビュー:BusDetails.cs)
- 30. フォーマット強く型付けされた要素の値
私は私のアダプタでUpdateBatchSizeを持っていないようです。これにトリックはありますか? – Carlos
@Carlos:はい、UpdateBatchSizeプロパティを持つ自動生成TableAdapterを拡張しました。私はそれがどのように機能するかを上記で説明しました。 –
@ティム:わかりません。あなたのコードは単にUpdateBatchSizeというメンバをラップしませんか? – Carlos