C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: VB.NET DataTableのRowを得る


(過去ログ 36 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■18359 / inTopicNo.1)  VB.NET DataTableのRowを得る
  
□投稿者/ little-potato (7回)-(2008/05/13(Tue) 18:00:41)

分類:[VB.NET/VB2005] 

VB.NET2003利用します。
部分コード:
//DataTable 定義

Dim aatable As New Data.DataTable
Dim aarow As Data.DataRow
Dim rowNum, columnNum As Integer //定&#20041;&#21333;&#20987;行列

//DataGridに入る
aatable.Columns.Add("no")
aatable.Columns.Add("name")
aatable.Columns.Add("sex")
aatable.Columns.Add("age")
For i = 0 To membertable.mydataset.Tables(0).Rows.Count - 1
aarow = aatable.NewRow
aarow.Item(0) = membertable.mydataset.Tables(0).Rows(i).Item("no")
aarow.Item(1) = membertable.mydataset.Tables(0).Rows(i).Item("name")
aarow.Item(2) = membertable.mydataset.Tables(0).Rows(i).Item("sex")
aarow.Item(3) = membertable.mydataset.Tables(0).Rows(i).Item("age")
aatable.Rows.Add(aarow)
Me.DataGrid1.DataSource = aatable
Next

//マウス右ボタンをクリック定義

Private Sub DataGrid1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGrid1.MouseDown
Dim myGrid As DataGrid = CType(sender, DataGrid)
Dim hti As System.Windows.Forms.DataGrid.HitTestInfo
hti = myGrid.HitTest(e.X, e.Y)
If e.Button = MouseButtons.Right And e.Clicks = 1 Then
Select Case hti.Type
Case System.Windows.Forms.DataGrid.HitTestType.Cell, System.Windows.Forms.DataGrid.HitTestType.RowHeader, System.Windows.Forms.DataGrid.HitTestType.ColumnHeader
rowNum = hti.Row
columnNum = hti.Column
End Select
End If
End Sub

//削除定義
Private Sub mnuDeleteRow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles delete.Click
Dim result As DialogResult
result = MsgBox("削除よろしいですか?", MsgBoxStyle.YesNo, "注意")
If result = DialogResult.Yes Then
membertable.mydataset.Tables(0).Rows.RemoveAt(rowNum)
aatable.Rows.RemoveAt(rowNum)
membertable.mydataset.AcceptChanges()
aatable.AcceptChanges()
End If
End Sub
今 削除時、第一行のみを削除します。DataTableのRowを得られない。マウス右ボタンをクリック定義部分は、実施できません。
どうすればいいか?
よろしくお願いいたします。

引用返信 編集キー/
■18361 / inTopicNo.2)  Re[1]: VB.NET DataTableのRowを得る
□投稿者/ やじゅ (363回)-(2008/05/13(Tue) 18:10:35)
No18359 (little-potato さん) に返信
> 今 削除時、第一行のみを削除します。DataTableのRowを得られない。マウス右ボタンをクリック定義部分は、実施できません。
> どうすればいいか?
>

質問の意味がよく分からない。
質問者は分かってて書いてるけど、他の人が読んでみると、なんじゃこりゃ? 
解析すらしたくないってなります。

引用返信 編集キー/
■18362 / inTopicNo.3)  Re[2]: VB.NET DataTableのRowを得る
□投稿者/ little-potato (10回)-(2008/05/13(Tue) 18:40:51)
No18361 (やじゅ さん) に返信
> ■No18359 (little-potato さん) に返信
>>今 削除時、第一行のみを削除します。DataTableのRowを得られない。マウス右ボタンをクリック定義部分は、実施できません。
>>どうすればいいか?
> >
>
> 質問の意味がよく分からない。
> 質問者は分かってて書いてるけど、他の人が読んでみると、なんじゃこりゃ? 
> 解析すらしたくないってなります。
>

すみません。日本語今まだまだです。
If I want to delete the 2ndRow,mouse's right button select the 2ndRow and choose the "delete" order, the 2ndRow can not be deleted.The 1stRow has been deleted.I think the "mouse's click define" has not been executed.Why?
引用返信 編集キー/
■18366 / inTopicNo.4)  Re[3]: VB.NET DataTableのRowを得る
□投稿者/ やじゅ (364回)-(2008/05/13(Tue) 19:41:21)
No18362 (little-potato さん) に返信
> すみません。日本語今まだまだです。
> If I want to delete the 2ndRow,mouse's right button select the 2ndRow and choose the "delete" order, the 2ndRow can not be deleted.
> The 1stRow has been deleted.I think the "mouse's click define" has not been executed.Why?

欧米か

訳すと、マウスで2行目を選択して削除したけど、1行目が削除されたよ、マウスで指定したのが削除されないのは、何故ですか?

DataGridのDataSourceと行位置は必ずしも一致しない。
削除した時は、DataTable上は削除マークが付くだけだから。

だから

選択されている行の値でデータセット内のテーブル行削除
aatable.Rows.RemoveAt(rowNum)
'データグリッドに再表示
DataGrid.SetDataBinding(aatable)
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -