- ベストアンサー
(Null)の表示について
お忙しいところ恐れ入ります。 Microsoft Visual Basic .NET 2003を使っておりますが、初歩的なところでつまずいております。お知恵をお貸し下さい。 SQLserverのDBにDataAdapter、DataSet経由で接続しDataGridで表示させているのですが、DBのカラムでNullの部分が画面上素直に「(Null)」と表示されます。この表示をNullであればカラムには何も表示させたくないのですがどのようにしたら良いのでしょうか? いままでVB6やAccessでは何の苦もなくできていたので、.NETでもどうにかすれば出来ると思っているのですが、その方法が分かりません(^_^;) お手数と存じますがご存じの方のご回答をお願いいたします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
DataGrid の設定はどのようにしてますでしょうか。 私がやる方法です。 DataGrid の "DataSource" プロパティに DataSet オブジェクトを設定します。 例:dsHoge1 同じく "DataMember" プロパティに DataSet 内のテーブルを設定します。 例:tableHoge DataGrid のプロパティで "TableStyles" の項目に "(コレクション)" となっていると思いますが、その横に表示される "..." をクリックすると <DataGridTableStyle コレクション エディタ" が起動します。 [追加] をクリックすると "DataGridTableStyle1" が追加されます。 右側の一番上から2つ目にある "MappingName" の [▼] をクリックしてテーブルを選択します。 右側の一番上にある "GridColumnStyles" の "(コレクション)" にある "..." をクリックすると "DataGridColumnStyle コレクション エディタ" が起動します。このエディタで DataGrid に表示する列を追加します。 [追加] をクリックすると "DataGridTextBoxColumn1" というのが追加されます。 こいつの右側で "NullText" という項目があるかと思いますが、ここに "(Null)" となっている文字列を削除します。 データが Null の場合、"NullText" プロパティに設定した文字列がグリッドに表示されます。 ちなみに "HeaderText" プロパティに設定した文字列が、DataGrid の列タイトルになります。
その他の回答 (2)
- JUNCHOON
- ベストアンサー率50% (10/20)
テーブルスタイルを設定して DataGridColumnStyle.NullTextプロパティに空「""」を 設定すれば良いと思います
お礼
JUNCHOON様 ご回答ありがとうございます。 おかげさまで解決できました。 ありがとうございます。
- calorieta
- ベストアンサー率36% (8/22)
Select文を発行する際にIsNull(Clm1,' ')関数を付けて返せば良いかと・・
お礼
calorieta様 早速のご回答ありがとうございます。 そういう方法もあるんですね。 参考になりました。 ありがとうございます。
お礼
temtecomai2様 ご丁寧な解説ありがとうございます。 ご指示の通りにやってみたところ出来ました\(^_^)/ 今回の(Null)の件だけでなく、カラムのカンマ編集などカラムごとの属性はどこで設定するのかなぁ....なんていうのも疑問に感じていたので、この方法で設定できるんですね。ありがとうございました。 今回私はデータビューオブジェクトをDataGridのDataSourceにしていたました。 その方法だと、ご指示の通りにやっても「DataGridTableStyle コレクション エディタ」のMappingNameにテーブル名が選択できず、DataGridColumnStyle コレクション エディタにはカラムの設定は出来てもDataGridに表示は出来ませんでした。 ネットでもいろいろ調べてみましたが、「DataGridTableStyle コレクション エディタ」のMappingNameにテーブル名を手入力すれば可能なんですね。 (でも手で入力しないといけない。ドロップダウンリストには表示されないと言うのがちょっとダサイですね) もしよろしければ、おついでにアドバイス頂けるとありがたいのですが、私の見ている参考書ではデータソースにデータビューオブジェクトを使うことが推奨されているように感じたのですが、今回の一件で見るとVisualStudio.NETの開発環境では、データセットオブジェクトを直に接続した方が良いように思いました。 好みの問題なのかも知れませんが、グリッドに一覧を表示するような用途の場合どちらの使い方がメリットがあるのでしょうか?