問題タブ [dataview]
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# - OnListChanged の DataView NullReferenceException
データ バインディングを使用して厳密に型指定された DataTable をコントロールに結び付ける、かなり複雑な WinForms アプリがあります (この事実がここで重要かどうかはわかりません)。列への変更によって、同じ行の別の列を更新するロジックがトリガーされると、例外が発生します (少なくともこれは私の理論です)。
例: Customer レコードは、Customer::MarketingContactId への連絡先のリストを含む ComboBox にバインドされます。連絡先が変更されると、その連絡先の詳細を編集できるように更新されるいくつかのテキストボックスとチェックボックスがあります。これらのチェックボックスの 1 つには、CheckChanged のイベント ハンドラーがあります。
m_row は更新される Customer です。ただし、このコードではエラーは発生しませんが、実際には MarketingContactId フィールドの設定から発生します。これを確認するコール スタックを次に示します。
System.Data.dll!System.Data.DataView.OnListChanged(System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) 行 1433 + 0x2c バイト C# System.Data.dll!System.Data.DataView.IndexListChanged(object送信者、System.ComponentModel.ListChangedEventArgs e = {System.ComponentModel.ListChangedEventArgs}) 1299 行 C# System.Data.dll!System.Data.DataView.IndexListChangedInternal(System.ComponentModel.ListChangedEventArgs e) 1324 行 C#
System.Data.dll! System.Data.DataViewListener.IndexListChanged(System.ComponentModel.ListChangedEventArgs e) 行 76 + 0x7 バイト C#
System.Data.dll!System.Data.Index.OnListChanged.AnonymousMethod(System.Data.DataViewListener listener, System.ComponentModel.ListChangedEventArgs args 、bool arg2、bool arg3) 803 行目 + 0x7 バイト C#
System.Data.dll!System.Data.Listeners.Notify(System.ComponentModel.ListChangedEventArgs arg1 = {System.ComponentModel.ListChangedEventArgs}、bool arg2 = false、bool arg3 = false、System.Data.Listeners.Action アクション = {メソッド= {Void b__2(System.Data.DataViewListener, System.ComponentModel.ListChangedEventArgs, Boolean, Boolean)}}) 1029 行目 + 0x1a バイト C# System.Data.dll!System.Data.Index.OnListChanged(System.ComponentModel.ListChangedEventArgs e ) 行 805 C# System.Data.dll!System.Data.Index.OnListChanged(System.ComponentModel.ListChangedType changedType, int newIndex, int oldIndex) 行 788 C# System.Data.dll!System.Data.Index.RecordStateChanged(int oldRecord 、System.Data.DataViewRowState oldOldState、System.Data.DataViewRowState oldNewState、int newRecord、System.Data.DataViewRowState newOldState、System.Data.DataViewRowState newNewState) 903 行目 + 0x10 バイト C#
System.Data.dll!System.Data.DataTable.RecordStateChanged(int record1 = 0、System.Data.DataViewRowState oldState1 = 追加、System.Data.DataViewRowState newState1 = なし、int record2 = 1、System.Data.DataViewRowState oldState2 = なし, System.Data.DataViewRowState newState2 = 追加) 行 3473 + 0x18 バイト C# System.Data.dll!System.Data.DataTable.SetNewRecordWorker(System.Data.DataRow 行 = "CustomerRow: Id:-1", int proposalRecord, System .Data.DataRowAction アクション = 変更、bool isInMerge、int 位置、bool fireEvent = true、out System.Exception deferredException = null) 行 3935 + 0x16 バイト C#
System.Data.dll!System.Data.DataTable.SetNewRecord(System.Data.DataRow 行、int 提案レコード、System.Data.DataRowAction アクション、bool isInMerge、bool fireEvent) 行 3824 C# System.Data.dll!System.Data. DataRow.SetNewRecord(int record) 行 1160 C# System.Data.dll!System.Data.DataRow.EndEdit() 行 631 + 0xa バイト C#
System.Data.dll!System.Data.DataRow.this[System.Data.DataColumn ].set(System.Data.DataColumn column, object value) 行 343 C#
Visual Studio の MS Symbol Server 機能から System.Data.dll のシンボルをロードしたため、行番号が表示されます。このデータがあれば、OnListChanged メソッドのこの部分でエラーをさらに追跡できます。
onListChanged != null のチェックの直後であれば、明らかに何かが間違っています。私の疑いは、EndEdit メソッド中に DataRow を更新すると、これがトリガーされるということです。もちろん、この問題を切り分けるための単純なサンドボックスでは、エラーは再現されませんでした。SO の他の誰かがこのバグに遭遇しましたか? もしそうなら、どのように修正しましたか?
今のところ私の手間は、MarketingContactIsFulltimeChangedHandler の BeginInvoke を呼び出して、そこで CreditLevel ロジックを実行する別のメソッドにすることです。
c# - dataGridViewの事前定義された列をSQLステートメントの列にバインドする方法(新しい列を追加せずに)?
定義済みの dataGridView 列を SQL ステートメントの結果にバインドするエレガントな方法はありますか?
例:
いくつかのSQLのような
そして、私は電話します
最後の呼び出しはデータグリッドに列を追加しますが、新しい列を追加しないように列名でバインドしたいだけです。
この例では、次のような結果が得られます。
テーブル列: ID、FirstName、FName、EID (ID と FirstName は空のセルを保持)
これを取得する方法:
よろしくお願いします!
asp.net - ビッグデータビューをDataGridにバインドするAsp.net
約2000行のデータビューがあります。ページの読み込み時に、データビューをオブジェクトデータグリッドにバインドします。
ただし、時間応答は非常に高くなります(数分)。それを速くするために私は何ができますか?または、少なくともクライアントをフリーズできませんか?
asp.net - RowFilter と文字列を使用した ADO.NET 1.0 と 3.5 の違いは?
私は最近、アプリケーションを .net 1.1 から 3.5 にアップグレードする任務を負っており、2 つのバージョン間で動作が異なる DataView の RowFilter に遭遇しました。
これは、1.1 では動作するが 3.5 では動作しない 1.1 のコード ブロックです。これを 3.5 で実行しようとすると、次のエラーが表示されます。「System.String および System.Int32 で '=' 操作を実行できません」周りに目盛りを付けなくても文字列として扱いますが、3.5 では rptNum が表示され、周りに目盛りを付ける必要があります。dv のフィールドは文字列の DataType です。
これが動作するように変更された 3.5 のコード ブロックです。文字列として扱われるように、文字列パラメーターの周りに目盛りを追加する必要がありました。
winforms - winforms ADO.net アプリケーションで、カスタムの非 DataTable 列を DataView に追加するにはどうすればよいですか?
カスタム列を DataView に追加し、この列に特定の計算結果を表示するにはどうすればよいですか (/可能ですか)。
つまり、現在、データベースの DataTable に基づいて、DataView にバインドされている dataGridView があります。この現在の行とその子行を見て計算される数値を表示するために、dataGridView に追加の列を追加したいと思います。つまり、列の情報は、行データ自体から導き出せるだけではありません。
具体的な質問は次のとおりです。a) 列自体をどこに追加しますか? 私が仮定するDataViewに?b)このカスタム列の値の再計算をトリガーするメソッド/イベント(/これを制御するにはどうすればよいですか)
ありがとう
PS。また、次のコード/アプローチを使用すると、無限ループが発生することにも注意しました...
このループを回避できる他のアプローチは何ですか。つまり、現在、行が変更されたときにカスタム列の値を更新すると言っていますが、その後行を変更すると、別の「行が変更されました」イベントがトリガーされます...
asp.net - DataTable.DefaultView.Sortが機能していないようです
DataTableにデータを入力し、そのDataTableのDefaultViewを並べ替えます。レポートのソースとしてDataTableを設定すると、並べ替えが機能しません。役立つ場合は、次のコードを使用します(GetDataは有効なDataTableを返します)。
c# - C# の垂直方向の DataGrid: 列名の変更
私は現在、SharePoint Web パーツの C# で DataGrid の向きを反転するためにインターウェブを調べているときに見つけた手法を使用しています。これは正しく機能しており、SQL Server 2005 データベースからデータを取得して DataGrid に表示しています。データベースの拡張プロパティを使用して列名を変更する簡単な方法があるかどうか、または手動で設定できるかどうかを知りたいのですが(ただし、列がたくさんあるので、拡張プロパティをデータベースに追加し、フィールド名の代わりにそれらを表示します)。
FlipDataSet メソッドは次のとおりです。
また、これがデータグリッドの方向の反転を処理する「正しい」方法であるかどうか、または少なくとも一般的にそれを行うためのより良い方法があるかどうかも疑問に思っています。
wpf - WPF でビューのビューを作成する
ICollectionView
では、既存の からを作成する必要がありますICollectionView
。アイデアは、既存のビューに設定されているフィルター/グループ化/並べ替えを取得して、その「ベース」ビューから他のビューを作成し、実際には「レイヤー化」またはフィルターの集約などを行うことができるということです。
ObservableCollection<T>
ソースコレクション( )が更新されたとき、およびデータアイテムが更新されたときに、Refresh()
メソッドを呼び出すように、アイテムを「自動的に」更新するエンドビューが必要です。元のコレクションと最後のビューの間のすべてのビューがわからないため、すべてのビューで Refresh を呼び出さないようにする必要があり、非常にRefresh()
遅いです。
独自のビュー クラスをローリングすることは避けようとしています。.net ライブラリに既に存在するものを (強く) 使用したいと考えています。
アップデート
これについて Microsoft に連絡があります。少なくとも、 WPF博士が私に言ったことと同じ問題を他の人が抱えていることを私は知っています。
wcf - WCF サービスでデータビューを返す
Web サービスに DataView を返すメソッドがあり、
このサービスと通信するプロキシをセットアップしましたが、プロキシでこのメソッドを作成すると
「タイプ 'object[]' を 'System.Data.DataView' に暗黙的に変換できません。これをグーグル検索しましたが、どこにもアクセスできませんでした。助けていただければ幸いです。
ありがとう