こんにちは。良です。
いつもお世話になっております。
環境はVB.NET2003
WinXP です。
今データグリッドの勉強をしていて選択した
セルの行番号と列番号、あとそこのセルの値を
出力ウィンドウに出力するプログラムを書いたのですが
選択した値がNULLのときの回避方法がわかりません。
ソースを載せます。
'セル取得ボタン
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dgc As DataGridCell = Me.DgSource.CurrentCell
'セル(行)の情報を表示
Dim rc As Integer = dgc.RowNumber
'セル(列)の情報を表示
Dim cn As Integer = dgc.ColumnNumber
'値がない場合は処理を抜ける
If Me.DgSource(rc, cn) Is Nothing Then Exit Sub’←
ここで「'System.InvalidCastException' のハンドルされていない例外が microsoft.visualbasic.dll で発生しました。
追加情報 : 演算子が、型 'DataSet' および 'Nothing' に対して有効ではありません。」とエラーが出ます。
'セルの行の表示
Console.WriteLine("選択されている行の名前:{0}", rc)
'セルの列の表示
Console.WriteLine("選択されている列の名前:{0}", cn)
'セルの値の表示
Console.WriteLine("選択されているセルの値:{0}", CStr(Me.DgSource(rc, cn)))
'現在のセルを(0,0)に設定
Me.DgSource.CurrentCell = New DataGridCell(0, 0)
End Sub
調べてみたのですがVB.NET2003でのNULLチェック方法がわかりません。
VB6.0みたいにIsNull関数みたいなものってないですか?
お手数ですがご教授のほうよろしくお願いいたします。
まちがえました。
正確なソースはこれです。
'セル取得ボタン
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'データグリッドに何も表示されていない場合
If Me.DgSource.DataSource = Nothing Then Exit Sub
Dim dgc As DataGridCell = Me.DgSource.CurrentCell
'セル(行)の情報を表示
Dim rc As Integer = dgc.RowNumber
'セル(列)の情報を表示
Dim cn As Integer = dgc.ColumnNumber
'値がない場合は処理を抜ける
If Me.DgSource(rc, cn) Is Nothing Then Exit Sub’←ここでエラー
'セルの行の表示
Console.WriteLine("選択されている行の名前:{0}", rc)
'セルの列の表示
Console.WriteLine("選択されている列の名前:{0}", cn)
'セルの値の表示
Console.WriteLine("選択されているセルの値:{0}", CStr(Me.DgSource(rc, cn)))
'現在のセルを(0,0)に設定
Me.DgSource.CurrentCell = New DataGridCell(0, 0)
End Sub
データベースの NULL は DBNull.Value を使います。
>VB6.0みたいにIsNull関数みたいなものってないですか?
Convert.IsDBNull メソッドを使っても判定できます。
DOBON.NETさんはまだ紹介してなかったっけ?
DataGrid を扱うなら、一通り勉強して損はないサイトです。
[DOBON.NET .NET Tips DataGridコントロール]
http://dobon.net/vb/dotnet/datagrid/index.html
こんにちは良です。
>特攻隊長まるるうさん
お返事ありがとうございます。
DOBONさんのホームページぜひ活用させていただきます。
またわからないことができたので他のスレ立てて質問させていただきます。
ありがとうございました。
ツイート | ![]() |