DBから読み込んで、DataGridViewに単価と数量を表示させることはできました。
そして、単価と数量を掛けた合計を表示させたいです。
とりあえず、合計の列を表示させる事まではできました。
合計欄に合計を表示させるにはどうすればいいのでしょうか。
また、単価や数量を変更した場合、合計を計算し直すには、
何のイベントに、そしてどのようにすればいいのでしょうか。
下が、DBから読み込んで、DataGridViewに単価と数量を表示されたであろうコードです。
private void Form1_Load(object sender, EventArgs e) { string connStr = "Data Source=localhost;Database=maria;User ID=user;password=password"; string selectStr = "SELECT tanka,kazu FROM item"; MySqlConnection cn = new MySqlConnection(connStr); MySqlDataAdapter da = new MySqlDataAdapter(selectStr, cn); DataTable dt = new DataTable(); da.Fill(dt); dataGridView1.DataSource = dt; DataGridViewTextBoxColumn textColumn = new DataGridViewTextBoxColumn(); textColumn.Name = "sum"; textColumn.HeaderText = "sum"; dataGridView1.Columns.Add(textColumn); }
DataTable は DB のテーブルを PC のメモリ上に取得してそれをプログラムで操作するという ADO.NET の非接続型データアクセスのために使うというのがそもそもの設計思想にあるようです。それを DataDridView にバインドするということは、DB のテーブルのレコード一覧を表示する(必要があれば編集も)というのがそもそもの使い方です。なので、DataGridView に合計を表示すると言うのは設計思想と相容れないような気がします。専用の帳票アプリを使うことを検討されてはいかがです?
今、c#を勉強しています。
そして、DataGridViewがよくわからないので、思いついた事ができるか、いろいろ試しています。
だから、設計思想なんて難しいことは考えていません。
ADO.NETは、非接続型データアクセスのためだけでしょうか。
私は、接続型を試していると思ったのですが違うのでしょうか。
> DataGridViewがよくわからないので、思いついた事ができるか、いろいろ試しています。
間違った方向に進むと質問者さんがいろいろ試す努力が無駄になるだけでなく、回答者・閲覧者を巻き込んで時間と労力の無駄になることが多いのでアドバイスしてます。人の意見・アドバイスは聞きたくないという訳ではないですよね、ここで質問しているのですから。
> ADO.NETは、非接続型データアクセスのためだけでしょうか。私は、接続型を試していると思ったのですが違うのでしょうか。
違います。前のスレッドで紹介した記事 https://docs.microsoft.com/ja-jp/previous-versions/cc482903(v=msdn.10) をもう少し読み進めれば分かるはず。
回答3件
あなたの回答
tips
プレビュー