SqlDataReader.IsDBNull(Int32) 方法

定義

取得值,指出資料行是否含有不存在或遺漏的值。Gets a value that indicates whether the column contains non-existent or missing values.

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

參數

i
Int32

以零為基底的資料行序數。The zero-based column ordinal.

傳回

如果指定的資料行值等於 true,則為 DBNull,否則為 falsetrue if the specified column value is equivalent to DBNull; otherwise false.

實作

備註

呼叫這個方法,在呼叫具類型的 get 方法(例如 GetByteGetChar等等)之前,先檢查是否有 null 資料行值,以避免引發錯誤。Call this method to check for null column values before calling the typed get methods (for example, GetByte, GetChar, and so on) to avoid raising an error.

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

適用於

另請參閱