プロが教える店舗&オフィスのセキュリティ対策術

DB接続しない前提です。
データセットを用いてグリッドビュー内で重複チェックをしたいです。

リストボックス内にファイル毎にテキストを取り込み、任意の日付を抽出しテーブルに登録。
テーブルに重複あるか確認してboolenで判定したいのですが、構文がエラーになります。

For i = 0 To ListBox1.Items.Count - 1
ST = ListBox1.Items.Item(i)
GT = GetText(ST)
Dim strSearchChardate As String = "Date "
Dim datetxt As String = GT.Substring(lngPointdate + 5, 10)

Dim dsdt = DataSet1.DataTable1
Dim checktxt As DateTime = DateTime.Parse(datetxt)
Dim check As Boolean = dsdt.Contains(datetxt)    ←ここのdatetxtエラー

’グリッドビューに重複なければ書き込み
dsdt.AddDataTable1Row(datetxt, code)


という風に進めたいのですが、修正を含め違うやり方等ありましたら教えていただきたいです。

よろしくお願いします。

質問者からの補足コメント

  • つらい・・・

    現在はエラー処理でしておりますがこれをやめたいです。
    '日付の重複処理
    Try
    dsdt.AddDataTable1Row(datetxt, code)
    '日付をユニークキーにしているため
    Catch ex As System.Data.ConstraintException
    MsgBox("同一日付があります")
    End Try

      補足日時:2019/12/29 17:29

A 回答 (1件)

余りにも詳しくない者ですが。



>dsdt.Contains(datetxt) 

とはデータテーブルの『どこ』を探しているのでしょうね?
エラーの内容がわかりませんから(記載されても不勉強で『ポワ~ン?』ですが)、探し方としての手段の参考になるかもってリンクを貼ります。

VB.NET DataTableをSelect検索をして絞り込みや存在チェックを行う
https://zukucode.com/2017/10/vbnet-datatable-sel …

でもこれって実際弄っている人にはこの範囲でわかるのでしょうけど、私が無知なのか何が何を表しているのかトンと不明瞭な気がします。
ちなみにリンク先をどう組み込むかについての返信には多分『答えられない』と自信はあります!!!
    • good
    • 0
この回答へのお礼

教えていただいた存在チェックでできました。
'ラムダ式(無名関数)存在チェック
If dsdt.Rows.Cast(Of DataRow).Any(Function(row) row("日付") = datetxt) Then
MsgBox("日付の重複あり")
Else
dsdt.AddDataTable1Row(datetxt, code)
End If

ありがとうございます。

お礼日時:2019/12/30 18:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A