C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 13 を表示中)
■4162 / )  DataGridにてNulltextの設定値取得について
□投稿者/ うっちー (8回)-(2007/06/08(Fri) 13:47:43)

分類:[VB.NET (Windows)] 

VS Version:Visual Studio 2003
OS Windows XP

http://dobon.net/vb/dotnet/datagrid/nulltext.html
現在、上記のサイトを参考に、DataGridにてNulltextを使用する方法を試しているのですが、
Nulltextで設定し表示されたままの値を取得しようするとエラーが発生してしまいます。
>Debug.WriteLine(CType(dTable.Rows(iRow)(0), String))
エラー内容
'System.InvalidCastException' のハンドルされていない例外が microsoft.visualbasic.dll で発生しました。
追加情報 : 型 'DBNull' から型 'String' へのキャストが有効ではありません。

DBNullについて追求してみたのですが、いまいち理解が出来ず、
下記の様に指定してみましたが、表示されている値が取得出来ませんでした。
>Debug.WriteLine(System.Convert.ToString(dTable.Rows(iRow)(0)))

申し訳ありませんが、どなたかご指導を宜しくお願いします。


以下ソースです。
Option Strict On
Option Explicit On

Imports System
Imports System.Data
Imports System.Windows.Forms
Imports System.Drawing

Public Class Form1
Inherits System.Windows.Forms.Form

Private dTable As DataTable

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim dt As New DataTable("DataTable1")
dt.Columns.Add("No", GetType(String))
dt.Columns.Add("name", GetType(String))

DataGrid1.DataSource = dt

Dim ts As New DataGridTableStyle
ts.MappingName = "DataTable1"

Dim cs As DataGridTextBoxColumn = New DataGridTextBoxColumn
cs.MappingName = "No"
cs.HeaderText = "No"
cs.Width = 25
cs.NullText = "1"

Dim cs1 As DataGridTextBoxColumn = New DataGridTextBoxColumn
cs1.MappingName = "name"
cs1.HeaderText = "名前"
cs1.NullText = ""

ts.GridColumnStyles.AddRange(New DataGridColumnStyle() {cs, cs1})

DataGrid1.TableStyles.Add(ts)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim iRow As Integer
dTable = CType(DataGrid1.DataSource, DataTable)
For iRow = 0 To dTable.Rows.Count - 1
Debug.WriteLine(System.Convert.ToString(dTable.Rows(iRow)(0)))
'Debug.WriteLine(CType(dTable.Rows(iRow)(0), String))
'Debug.WriteLine(System.Convert.ToString(dTable.Rows(iRow)(0)) & " , " & CType(dTable.Rows(iRow)(1), String))
Next
End Sub
End Class
返信 編集キー/


管理者用

- Child Tree -