SqlDataReader.IsDBNull(Int32) メソッド

定義

列に存在しない値または欠損値が含まれているかどうかを示す値を取得します。

public:
 virtual bool IsDBNull(int i);
public:
 override bool IsDBNull(int i);
public bool IsDBNull(int i);
public override bool IsDBNull(int i);
abstract member IsDBNull : int -> bool
override this.IsDBNull : int -> bool
override this.IsDBNull : int -> bool
Public Function IsDBNull (i As Integer) As Boolean
Public Overrides Function IsDBNull (i As Integer) As Boolean

パラメーター

i
Int32

0 から始まる列の序数。

返品

true 指定した列の値が DBNullと等しい場合は a0/>。それ以外の場合は false

実装

注釈

このメソッドを呼び出して、型指定された get メソッド ( GetByteGetChar など) を呼び出す前に null 列の値を確認し、エラーが発生しないようにします。

using System;
using System.Data;
using System.Data.SqlClient;

class Program {
   static void Main(string[] args) {

      using (var connection = new SqlConnection(@"Data Source=(local);Initial Catalog=AdventureWorks2012;Integrated Security=SSPI")) {
         var command = new SqlCommand("SELECT p.FirstName, p.MiddleName, p.LastName FROM HumanResources.Employee AS e" +
                                 " JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID;", connection);
         connection.Open();
         var reader = command.ExecuteReader();
         while (reader.Read()) {
            Console.Write(reader.GetString(reader.GetOrdinal("FirstName")));
            // display middle name only of not null
            if (!reader.IsDBNull(reader.GetOrdinal("MiddleName")))
               Console.Write(" {0}", reader.GetString(reader.GetOrdinal("MiddleName")));
            Console.WriteLine(" {0}", reader.GetString(reader.GetOrdinal("LastName")));
         }
         connection.Close();
      }
   }
}
Imports System.Data
Imports System.Data.SqlClient

Module Module1
   Sub Main()
      Using connection As New SqlConnection("Data Source=(local);Initial Catalog=AdventureWorks2012;Integrated Security=SSPI")
         Dim command As New SqlCommand("SELECT p.FirstName, p.MiddleName, p.LastName FROM HumanResources.Employee AS e" & _
                                       " JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID;", connection)
         connection.Open()
         Dim reader As SqlDataReader = command.ExecuteReader()
         While reader.Read()
            Console.Write(reader.GetString(reader.GetOrdinal("FirstName")))

            ' display middle name only of not null
            If Not reader.IsDBNull(reader.GetOrdinal("MiddleName")) Then
               Console.Write(" {0}", reader.GetString(reader.GetOrdinal("MiddleName")))
            End If

            Console.WriteLine(" {0}", reader.GetString(reader.GetOrdinal("LastName")))
         End While
         connection.Close()
      End Using
   End Sub
End Module

適用対象

こちらもご覧ください