DataGridViewにチェックボックスを追加する
DataGridView上にデータベースから取得したデータとチェックボックスを表示させたい場合、 バインドするDataTableにチェックボックス列を追加することで表示できる。
Dim objDataTable As DataTable Dim objCol As DataColumn ' チェックボックス列を作成 objColumn = New DataColumn("Checkbox",GetType(Boolean)) ' DataTableにチェックボックス列を追加 objDataTable.Columns.Add(objColumn) 'データソースにDataTableをセット objDataGridView.DataSource = objDataTable ' DataGridView再描画 objDataGridView.Refresh()
DataTableにチェックボックスのDataColumnを追加しただけだと、 DataTable上に存在するデータ列に追加されるかたちで配置される。
DataTableのイメージ
ColumnA | ColumnB | Checkbox |
---|---|---|
100 | 2017 | □ |
101 | 2016 | □ |
チェックボックス列の表示位置を変更したい場合はDataColumn.SetOrdinalを使用する。
' 引数は左端から0 objColumn.SetOrdinal(0)
SetOrdinalで列を変更した場合のDataTableのイメージ
Checkbox | ColumnA | ColumnB |
---|---|---|
□ | 100 | 2017 |
□ | 101 | 2016 |
セルを読み取り専用にする場合はDataGridViewのReadOnlyプロパティをTrueに変更する。 ただし、DataGridViewのReadOnlyプロパティを変更すると、DataGridView上のセルすべてに適用されるため、 チェックボックスの変更のみを有効にしたい場合は、 DataGridViewをRefreshする前に個別にプロパティを変更する。
' 左端列がチェックボックスの場合 For i As Integer = 1 To objDataGridView.ColumnCount - 1 objDataGridView.Columns(i).ReadOnly = True Next
実戦で役立つ C#プログラミングのイディオム/定石&パターン
- 作者: 出井秀行
- 出版社/メーカー: 技術評論社
- 発売日: 2017/02/18
- メディア: 大型本
- この商品を含むブログ (1件) を見る
SQLでAVGとCOUNTはNULLを無視する
ColumnA | ColumnB |
---|---|
100 | 100 |
200 | 200 |
300 | 300 |
400 | NULL |
500 | 500 |
テーブルが上記の状態のとき、ColumnA、ColumnBに対して集合関数を使用してみると以下のような結果が出力される。
ColumnA
SUM | MAX | MIN | AVG | COUNT |
---|---|---|---|---|
1500 | 500 | 100 | 300 | 5 |
ColumnB
SUM | MAX | MIN | AVG | COUNT |
---|---|---|---|---|
1100 | 500 | 100 | 275 | 4 |
集合関数を使用する列にNULLが含まれる場合、AVGとCOUNTについてはNULLが無視された結果が出力される。 COUNTは「総レコード数-NULLレコード数」、AVGは「該当レコードの有効値の合計/(総レコード数-NULLレコード数)」なので、レコード数を基準に考えると正確な値は出力されない。
集合関数を使用する場合は、NULLを許容しない(NOT NULL)列だけで使用したり、列にデフォルト制約を使用してNULLが挿入されない状態を作るなどの前提を用意しておくべきだと思うんだけど、もし集合関数の結果にNULLのレコードを含みたい場合はCASE式が使える。
SELECT AVG(Sub.ColB), COUNT(Sub.ColB) FROM (SELECT CASE WHEN ColumnB IS NULL THEN 0 ELSE ColumnB END AS ColB FROM Table) Sub
SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)
- 作者: ミック
- 出版社/メーカー: 翔泳社
- 発売日: 2016/06/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)
- 作者: ミック
- 出版社/メーカー: 翔泳社
- 発売日: 2008/02/07
- メディア: 単行本(ソフトカバー)
- 購入: 54人 クリック: 1,004回
- この商品を含むブログ (78件) を見る