Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
DBを更新するアプリケーションにつきまして
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30463#CommentId83828
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2020/3/16 17:58:54
C1FlexGrid は使ったことが無く、所有もしていないため、
メーカーのサポートページを見ているだけではありますが:
https://docs.grapecity.com/help/c1/winforms/winforms_flexgrid/
> グリッドの編集結果を取り出す方法であったり
.DataSource プロパティにバインドしているのなら、
DataTable に編集結果が格納されていると思います。
もしもアンバウンドで使っているなら、.GetData メソッドで編集結果が得られるのでは
ないでしょうか。(総行数は .Rows.Count で)
> 重複チェックのアルゴリズムなど
幾つか方法がありますが、2010 なら DataSet の制約機能を使うのはどうでしょう?
まずは DataTable に重複キー制約を付与しておきます。(型付DataSet でも可)
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.uniqueconstraint?view=netframework-4.8
そしてユーザーには、EnforceConstraints = False の状態で入力させておき、
重複検証を行う際に EnforceConstraints = True にします。制約違反があると
例外が発生するので、Try~Catch で補足します。
EnforceConstraints = True で、どの行が原因で制約違反になったのかを調べるには、
DataTable の GetErrors メソッドを使えます。
エラー行のうち、どの列に問題があったのかを調査するには、
DataRow の GetColumnsInError メソッドと GetColumnError メソッドを使えます。
あるいは LINQ to DataSet で Group By して、.Count() > 1 なレコードを得るという手もありそう。