DOBON.NETプログラミング道掲示板

■35650 / 1階層)  DataGridViewのイベント中にデータを更新するとエラーが発生
□投稿者/ 魔界の仮面弁士 大御所(1582回)-(2025/02/12(Wed) 10:15:57)
  • アイコンNo35649に返信(Pulsarさんの記事)
    > .Net9.0 c# Microsoft.Data.SqlClientを使用していますが
    .NET 9.0 ですか…。.NET 8.0 だと結果は変わりますか?

    STS である奇数バージョン(リリース後、18ヶ月間サポートされる)は、
    LTS である偶数バージョン(リリース後、36ヶ月間サポートされる)よりも
    ライフサイクルが短いため、8.0 にしてみるのも手かもしれません。
    https://dotnet.microsoft.com/ja-jp/platform/support/policy/dotnet-core


    > DataGridViewにBindingSourceを使用してDataTableをバインドしています。
    両バージョンの DataTable で WriteXml した場合、内容に差異がありますか?
    差異が無いのなら、SqlClient そのものが原因では無いのだと思います。

    その XML を ReadXml で読み取った DataTable をバインドした場合と、
    元の SqlClient から得た DataTable をバインドした場合とで
    結果に差があるかを確認してみてはいかがでしょう。


    > CellContentClickイベント中にDataTableのデータを更新して
    > BindingSourceのResetBindingsメソッドを実行すると
    > CellContentClickイベントが終了したタイミングで
    > System.NullReferenceException: 'Object reference not set to an instance of an object.'
    > が発生します。
    例外発生時に StackTrace の内容がどうなっているか、提示することはできますか?
    もしくは、「第三者が実験可能な最小限の検証用コード」を添付することは可能でしょうか。
    .NET はソースコードが公開されているため、そこから何かヒントが得られるかもしれません。

    https://source.dot.net/#System.Windows.Forms/System/Windows/Forms/Controls/DataGridView/DataGridView.cs
    https://github.com/dotnet


    また、CellContentClick の最中に BindingSource.ResetBindings() する代わりに、
    BeginInvoke などを用いて、「CellContentClick の完了後に BindingSource.ResetBindings()」されるように
    手順を変更してみるのはどうでしょうか。


    > .Net6.0 c# System.Data.SqlClientを使用していた時はエラーは発生しませんでした。

    一般的には「c#」ではなく「C#」と表記されることが多いです。
    以下、C# 関連規格書より引用:

    -----
    JIS X 3015:2008 "プログラム言語C#" [October 2008]
     「6 頭字語及び略語」
    より引用:
    > C#は,LATIN CAPITAL LETTER C (U+0043)の次に
    > NUMBER SIGN # (U+000D)を書く。
    -----
    ISO/IEC 23270:2018 "Information technology -- Programming languages -- C# (Third edition)" [December 2018]
     「4. Acronyms and abbreviations」
    および
    ECMA-334:2023 "C# language specification (7th edition)" [December 2023]
     「Introduction」
    より引用:
    > The name C# is written as the LATIN CAPITAL LETTER C (U+0043)
    > followed by the NUMBER SIGN # (U+000D).
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←DataGridViewのイベント中にデータを更新するとエラーが発生 /Pulsar →Re[2]: DataGridViewのイベント中にデータを更新するとエラーが発生 /Pulsar
 
上記関連ツリー

Nomalアイコン DataGridViewのイベント中にデータを更新するとエラーが発生 / Pulsar (25/02/07(Fri) 14:46) #35649
Nomalアイコン DataGridViewのイベント中にデータを更新するとエラーが発生 / 魔界の仮面弁士 (25/02/12(Wed) 10:15) #35650 ←Now
  └Nomalアイコン Re[2]: DataGridViewのイベント中にデータを更新するとエラーが発生 / Pulsar (25/02/12(Wed) 15:43) #35651 解決み!

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -