tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルデータグリッド任意行削除。
記事No2515
投稿日: 2005/11/04(Fri) 10:18
投稿者ぽこ太
[OSのVer]:Windows    [VBのVer]:VB.NET  
テキストにKEY項目を入力し、そのKEYと同じ値を持つ行のみ
グリッドから削除したいです。
(Grid.Key = txtKey)
のですが、上手く書けません。
何か良い方法がありましたら、教えてください。

[ツリー表示へ]
タイトルRe: データグリッド任意行削除。
記事No2521
投稿日: 2005/11/04(Fri) 14:30
投稿者るしぇ
DataGrid のメンバにはデータの編集で使い易いものが少ないので
DataSource に DataView を設定してそっちを操作するとか?
…詳しい使い方はヘルプに載ってます。

[ツリー表示へ]
タイトルRe^2: データグリッド任意行削除。
記事No2523
投稿日: 2005/11/04(Fri) 16:42
投稿者ぽこ太
[OSのVer]:Windows    [VBのVer]:VB.NET  

返信ありがとうございます。

すいません。詳しく書けばよかったです。
これは、Formに表示されているDataをグリッドに入力するものです。
現在の作りだと、グリッドからに表示されているデータを修正モードにして開き、
登録すると、グリッドには2重に表示されます。
そこで・・ふるいものを削除したいです。
(データ数は約10000000件で、いくつかのViewをくっつけてグリッドに登録しています)

現在ソースとしては
  If Grid1.Row <> 0 Then
     Do Until iCount = iCurPtr
      Grid1.Row = iCount
      Grid1.Col = 2            
       Atai1 = Grid1.Text
       If Atai1 = TxS.Text Then
        Grid1.RemoveItem (iCount) ←
       End If
       iCount = iCount + 1
      Loop
   End If

このようなものを考えています。
お気づきのとおり、これでは・・
データは消えますが・・行自体は削除されません。

1度グリッドを初期化し、SQLでデータを読みなおす方が
楽かと思いますが・・
何分件数が多い為、そこからデータをセレクトするのに付加がかかってしまうのです。

[ツリー表示へ]
タイトルRe^3: データグリッド任意行削除。
記事No2527
投稿日: 2005/11/06(Sun) 10:52
投稿者なおこ(・∀・)
お世話になります。

DataGridコントロールのDataSourceプロパティやDataMemberプロパティから
DataTableオブジェクトを取り出して、
DataTable.Rows.Remove とか DataTable.Rows.RemoveAt とか
してやればいいのではないでしょうか。

[ツリー表示へ]
タイトルRe^4: データグリッド任意行削除。
記事No2532
投稿日: 2005/11/07(Mon) 10:04
投稿者ぽこ太
なおこsお返事ありがとうございます。
おかげさまで一応、行削除できました。
ただ現在のRowがカウントできない等あり、凄くおこちゃまなプログラムになってしまいました。

恥ずかしいながら、載せていただきます。

  If Grid1.Row <> 0 Then
      
     Do Until iCount > iCurA - iCount2
             'iCurA 追加した行のカウント
          'iCount2 削除行    
      Grid1.Row = iCount '行セット
      Grid1.Col = 1       'カラムセット      
       Atai1 = Grid1.Text  
       If Atai1 = TxS.Text Then
        Grid1.RemoveItem (iCount)
         iCount2 = iCount2 + 1
       End If
       iCount = iCount + 1
      Loop
   End If

もっと良い書き方がありましたら、ご連絡下さい。

[ツリー表示へ]