トップ回答者
データテーブルからデータグリッドビューへ表示している場合の行(データ)の追加

質問
-
VB初心者です。
下記のコードでアプリケーション起動時に
1.データテーブルを作成
2.CSVファイルからデータテーブルへデータを読み込み
3.データテーブルのデータをデータグリッドビューへ表示
としています。ここまでは完成しています。
アプリケーション上にデータの追加ボタンbtn_add_Clickを作成してアプリケーション上からデータをリストへ追加していきたいです。
DataTableにデータを追加して、そのデータをデータグリッドビューへ表示したいのですがどのようなコードにすればいいでしょうか?
ご教示お願い致します。
入力フォームはすでに作っていて、テキストボックスA、B、C、Dとその入力されたデータをもとに内容が変わるラベルE、Dがあります。Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim database_DataTable As DataTable
Dim database_DataRow As DataRow
database_DataTable = New DataTable()
database_DataTable.Columns.Add("A", GetType(String))
database_DataTable.Columns.Add("B", GetType(String))
database_DataTable.Columns.Add("C", GetType(String))
database_DataTable.Columns.Add("D", GetType(String))
database_DataTable.Columns.Add("E", GetType(String))
database_DataTable.Columns.Add("F", GetType(String))
Using Reader As New IO.StreamReader("C:\データ.csv", System.Text.Encoding.GetEncoding("Shift-JIS"))
Dim Line As String = Reader.ReadLine
Dim Items() As String
Line = Reader.ReadLine
Do Until IsNothing(Line)
Items = Line.Split(",")
database_DataRow = database_DataTable.NewRow()
For z = 0 To Items.Length - 1
database_DataRow(z) = Items(z)
Next
database_DataTable.Rows.Add(database_DataRow)
Line = Reader.ReadLine
Loop
End Using
Dim dv As DataView
dv = New DataView(database_DataTable)
database.DataSource = dv
End Sub
Private Sub btn_add_Click(sender As Object, e As EventArgs) Handles btn_add.Click
End Sub
回答
-
> DataTableにデータを追加して、そのデータをデータグリッドビューへ表示したいのですがどのようなコードにすればいいでしょうか?
DataTable.NewRow メソッドで元の DataTable から新しい DataRow オブジェクトを生成し、それに DataRow.Item プロパティで各列のデータを設定し、データを設定したら DataTable.Rows.Add メソッドでその DataRow オブジェクトを元の DataTable に追加するということでいかがですか?
- 回答としてマーク T.K.Tora 2018年3月12日 2:26
すべての返信
-
> DataTableにデータを追加して、そのデータをデータグリッドビューへ表示したいのですがどのようなコードにすればいいでしょうか?
DataTable.NewRow メソッドで元の DataTable から新しい DataRow オブジェクトを生成し、それに DataRow.Item プロパティで各列のデータを設定し、データを設定したら DataTable.Rows.Add メソッドでその DataRow オブジェクトを元の DataTable に追加するということでいかがですか?
- 回答としてマーク T.K.Tora 2018年3月12日 2:26
-
私がレスに書いたキーワードをもとに MSDN ライブラリをググって中を見てください。
例えば、DataTable.NewRow なら以下のように検索すると、
以下の記事が一番最初に表示されるはず。それにサンプルコードがあります。
DataTable.NewRow メソッド ()
https://msdn.microsoft.com/ja-jp/library/system.data.datatable.newrow(v=vs.110).aspx -
>DataTable.NewRow メソッドで元の DataTable から新しい DataRow オブジェクトを生成し、それに DataRow.Item プロパティで各列のデータを設定し、データを設定したら DataTable.Rows.Add メソッドでその DataRow オブジェクトを元の DataTable に追加するということでいかがですか?
こちらを参考になんとかデータテーブルへの行の追加うまくできました!
ありがとうございます。
ですがまた壁にぶつかってしまいました。
DataTableをCSVファイルとして保存したいのですがうまくいきません。
今一度ご教示お願い致します。 -
DataTableをCSVファイルとして保存したいのですがうまくいきません。
どの辺りがわかりませんか?
これに関しては一般的に行われていることであり、「DataTable CSV」で検索するとたくさんの例が見つかると思います。
もし、検索されたページを参考にコードを作成されているのでしたら、どの辺りがわからないのかコードを提示しながら、どのようなエラーが発生しているのかを提示するようにして下さい。わかりやすい質問をすることは、それだけ的確な回答を早く得やすくなります。また、このスレッドの質問のタイトルと違う質問になっています。CSV出力に関し、さらにご質問を続ける場合には、新しく質問を立てるようにして下さい。よろしくお願いいたします。
★良い回答には質問者は回答済みマークを、閲覧者は投票を!
- 編集済み trapemiyaModerator 2018年3月12日 1:14 追記
-
フォーラム オペレーターの栗下 望です。
T.K.Tora さん、こんにちは。回答とは異なり恐縮ですが
オペレーターからも一点お伝えさせていただきたいことがあります。
内容を拝見いたしましたところ、
Yahoo! JAPAN 知恵袋にも同様の質問を投稿されておりませんでしょうか。・VB初心者です。DataTableをソースにしてDataGridViewで一覧表示
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11187435491
複数のフォーラムにご投稿をいただきますと、情報が分散してしまったり、
折角調べて回答いただいたのに、他フォーラムではすでに解決済みであった、
というような状況が生じてしまいます。大変恐縮ではございますが、もし同じ投稿者さんでしたら、
投稿箇所を絞って質問の継続をいただくよう、
ご検討いただけますでしょうか。ご理解の程、どうかよろしくお願いいたします。
フォーラム利用時の注意点のお知らせです。
※初めてご投稿された方を対象にお知らせしています。ご利用の際は、下記内容をお守りいただきますと
情報が寄せられやすくなりますので、ぜひご一読ください。
・フォーラムでご質問頂くにあたっての注意点
・フォーラムのご利用方法(質問の投稿)について
・フォーラムへの回答に関するガイドラインおよびフォーラム運営について(再掲)
ご意見、ご要望はこちらのフォーラムまで。
各種設定方法はフォーラム内を [かんたん フォーラム ガイド] で検索してみてください。
~ 参考になった投稿には回答としてマークの設定にご協力ください ~
MSDN/TechNet Community Support 栗下 望- 編集済み 栗下 望Microsoft employee, Moderator 2018年3月12日 5:03 一部編集