- PR -

-DataGrid- 先頭行にレコード追加を行うには

1
投稿者投稿内容
和也さん
ベテラン
会議室デビュー日: 2006/02/09
投稿数: 78
投稿日時: 2006-03-05 01:09
すいません。教えてください。
VB.NETのデータグリッドに関してですが、
先頭行にレコードを追加を行いたいのですがどのようにすればよいのでしょうか?

フォーム上のコマンドボタンをクリックした時に先頭行にレコードを追加したいです。
コマンドボタンとデータグリッドは同じフォーム上にあります。

ご教授お願いいたします。


----- サンプルソース -----
Dim dataSet As New DataSet
Dim dataTable As DataTable

Dim ts As New DataGridTableStyle 'テーブルスタイル
Dim cs1 As New DataGridBoolColumn 'カラムスタイル 1列目
Dim cs2 As New DataGridTextBoxColumn '   〃    2列目
Dim cs3 As New DataGridTextBoxColumn '   〃    3列目
Dim cs4 As New DataGridTextBoxColumn '   〃    4列目

'テーブルの作成
dataTable = dataSet.Tables.Add("t_Data")
dataTable.Columns.Add("Print", Type.GetType("System.Boolean"))
dataTable.Columns.Add("Room", Type.GetType("System.String"))
dataTable.Columns.Add("Team", Type.GetType("System.String"))
dataTable.Columns.Add("Name", Type.GetType("System.String"))

'テーブルのデータ作成
dataTable.Rows.Add(New Object() {False, "511", "A", "山田 花子"})
dataTable.Rows.Add(New Object() {False, "512", "A", "佐藤 太郎"})
dataTable.Rows.Add(New Object() {True, "541", "B", "片山 次郎"})
dataTable.Rows.Add(New Object() {True, "542", "B", "小泉 一郎"})
dataTable.Rows.Add(New Object() {False, "543", "B", "茂野 五郎"})

' テーブル・スタイルの作成
ts.MappingName = dataTable.TableName 'テーブル名のセット

'カラム・スタイルの作成
cs1.MappingName = dataTable.Columns(0).ColumnName 'カラム名のセット
cs1.HeaderText = "印刷" '列見出しのセット

cs2.MappingName = dataTable.Columns(1).ColumnName 'カラム名のセット
cs2.HeaderText = "商品コード" '列見出しのセット

cs3.MappingName = dataTable.Columns(2).ColumnName 'カラム名のセット
cs3.HeaderText = "担当課" '列見出しのセット

cs4.MappingName = dataTable.Columns(3).ColumnName 'カラム名のセット
cs4.HeaderText = "担当名" '列見出しのセット

'テーブルスタイル/カラムスタイルの適用
DataGrid1.TableStyles.Add(ts)
ts.GridColumnStyles.Add(cs1)
ts.GridColumnStyles.Add(cs2)
ts.GridColumnStyles.Add(cs3)
ts.GridColumnStyles.Add(cs4)
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-05 08:57
引用:

和也さんさんの書き込み (2006-03-05 01:09) より:

VB.NETのデータグリッドに関してですが、
先頭行にレコードを追加を行いたいのですがどのようにすればよいのでしょうか?
フォーム上のコマンドボタンをクリックした時に先頭行にレコードを追加したいです。
コマンドボタンとデータグリッドは同じフォーム上にあります。


DataGridの行追加について(C# Winフォーム)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
和也さん
ベテラン
会議室デビュー日: 2006/02/09
投稿数: 78
投稿日時: 2006-03-05 09:29
ご回答ありがとうございます

新規追加は出来るのですが、
レコードの追加位置を指定出来ないでしょうか?
1行目に追加・2行目に追加のように・・・

レコード数が莫大なので
1.1〜5レコード目→配列に退避
2.1行目に新規レコードを追加
3.退避したレコードを2〜6行目に追加
的なことは避けたいのですが

あと再バインドとは何でしょうか?


Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-03-05 21:10
InsertAt ってメソッドがなかった?



でも、データベースにわたると、「何行目」というのは意味ないですよ。
1

スキルアップ/キャリアアップ(JOB@IT)