Aracılığıyla paylaş


DBNull Sınıf

Tanım

Var olmayan bir değeri temsil eder. Bu sınıf devralınamaz.

public ref class DBNull sealed
public ref class DBNull sealed : IConvertible, System::Runtime::Serialization::ISerializable
public sealed class DBNull
public sealed class DBNull : IConvertible, System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class DBNull : IConvertible, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DBNull : IConvertible, System.Runtime.Serialization.ISerializable
type DBNull = class
type DBNull = class
    interface IConvertible
    interface ISerializable
[<System.Serializable>]
type DBNull = class
    interface ISerializable
    interface IConvertible
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DBNull = class
    interface ISerializable
    interface IConvertible
Public NotInheritable Class DBNull
Public NotInheritable Class DBNull
Implements IConvertible, ISerializable
Devralma
DBNull
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnek, kişi veritabanındaki DBNull.Value.Equals bir veritabanı alanının geçerli bir değere sahip olup olmadığını belirlemek için yöntemini çağırır. Varsa, alan değeri bir etiketteki dize çıkışına eklenir.

private void OutputLabels(DataTable dt)
{
   string label;

   // Iterate rows of table
   foreach (DataRow row in dt.Rows)
   {
      int labelLen;
      label = String.Empty;
      label += AddFieldValue(label, row, "Title");
      label += AddFieldValue(label, row, "FirstName");
      label += AddFieldValue(label, row, "MiddleInitial");
      label += AddFieldValue(label, row, "LastName");
      label += AddFieldValue(label, row, "Suffix");
      label += "\n";
      label += AddFieldValue(label, row, "Address1");
      label += AddFieldValue(label, row, "AptNo");
      label += "\n";
      labelLen = label.Length;
      label += AddFieldValue(label, row, "Address2");
      if (label.Length != labelLen)
         label += "\n";
      label += AddFieldValue(label, row, "City");
      label += AddFieldValue(label, row, "State");
      label += AddFieldValue(label, row, "Zip");
      Console.WriteLine(label);
      Console.WriteLine();
   }
}

private string AddFieldValue(string label, DataRow row,
                             string fieldName)
{
   if (! DBNull.Value.Equals(row[fieldName]))
      return (string) row[fieldName] + " ";
   else
      return String.Empty;
}
member this.OutputLabels(dt: DataTable) =
    let mutable label = ""

    // Iterate rows of table
    for row in dt.Rows do
        let mutable label = String.Empty
        label <- label + this.AddFieldValue(label, row, "Title")
        label <- label + this.AddFieldValue(label, row, "FirstName")
        label <- label + this.AddFieldValue(label, row, "MiddleInitial")
        label <- label + this.AddFieldValue(label, row, "LastName")
        label <- label + this.AddFieldValue(label, row, "Suffix")
        label <- label + "\n"
        label <- label + this.AddFieldValue(label, row, "Address1")
        label <- label + this.AddFieldValue(label, row, "AptNo")
        label <- label + "\n"
        let labelLen = label.Length
        label <- label + this.AddFieldValue(label, row, "Address2")
        let labelLen =
            if label.Length <> labelLen then
                label + "\n"
            else label
        label <- label + this.AddFieldValue(label, row, "City")
        label <- label + this.AddFieldValue(label, row, "State")
        label <- label + this.AddFieldValue(label, row, "Zip")
        printfn $"{label}"
        printfn ""

member _.AddFieldValue(label: string, row: DataRow, fieldName: string) =
    if DBNull.Value.Equals row[fieldName] |> not then
        (string row[fieldName]) + " "
    else
        String.Empty
Private Sub OUtputLabels(dt As DataTable)
   Dim label As String 

   ' Iterate rows of table
   For Each row As DataRow In dt.Rows
      Dim labelLen As Integer
      label = String.Empty
      label += AddFieldValue(label, row, "Title")
      label += AddFieldValue(label, row, "FirstName")
      label += AddFieldValue(label, row, "MiddleInitial")
      label += AddFieldValue(label, row, "LastName")
      label += AddFieldValue(label, row, "Suffix")
      label += vbCrLf
      label += AddFieldValue(label, row, "Address1")
      label += AddFieldValue(label, row, "AptNo")
      label += vbCrLf
      labelLen = Len(label)
      label += AddFieldValue(label, row, "Address2")
      If Len(label) <> labelLen Then label += vbCrLf
      label += AddFieldValue(label, row, "City")
      label += AddFieldValue(label, row, "State")
      label += AddFieldValue(label, row, "Zip")
      Console.WriteLine(label)
      Console.WriteLine()
   Next
End Sub

Private Function AddFieldValue(label As String, row As DataRow, _
                          fieldName As String) As String
   If Not DbNull.Value.Equals(row.Item(fieldName)) Then
      Return CStr(row.Item(fieldName)) & " "
   Else
      Return Nothing
   End If
End Function

Açıklamalar

DBNull sınıfı var olmayan bir değeri temsil eder. Örneğin bir veritabanında, tablonun bir satırındaki sütun herhangi bir veri içermeyebilir. Başka bir ifadeyle, sütunun yalnızca bir değere sahip olmaması yerine hiç var olmadığı kabul edilir. Nesne DBNull , var olmayan sütunu temsil eder. Buna ek olarak, COM birlikte çalışma sınıfını DBNull kullanarak var olmayan bir değeri gösteren VT_NULL bir değişken ile belirtilmemiş bir değeri gösteren VT_EMPTY değişkenini ayırt eder.

Tür DBNull tekil bir sınıftır ve bu da yalnızca bir DBNull nesnenin var olduğu anlamına gelir. Üye DBNull.Value tek DBNull nesneyi temsil eder. DBNull.Value bir veritabanı alanına var olmayan bir değeri açıkça atamak için kullanılabilir, ancak çoğu ADO.NET veri sağlayıcısı bir alanın geçerli bir değeri olmadığında değerlerini DBNull otomatik olarak atar. Veritabanı alanından alınan bir değerin değer olup olmadığını belirlemek için bu alanın DBNull değerini yöntemine DBNull.Value.Equals geçirebilirsiniz. Ancak, bazı diller ve veritabanı nesneleri, veritabanı alanının DBNull.Valuedeğerinin olup olmadığını belirlemeyi kolaylaştıran yöntemler sağlar. Bunlar Visual Basic IsDBNull işlevini, Convert.IsDBNull yöntemini, DataTableReader.IsDBNull yöntemini ve IDataRecord.IsDBNull yöntemini içerir.

Nesne odaklı bir programlama dilindeki fikir null bir nesne ile DBNull karıştırmayın. Nesne odaklı programlama dilinde, null bir nesneye başvuru olmaması anlamına gelir. DBNull başlatılmamış bir değişken veya var olmayan bir veritabanı sütununu temsil eder.

Alanlar

Value

Sınıfının tek örneğini DBNull temsil eder.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetObjectData(SerializationInfo, StreamingContext)
Geçersiz.

arabirimini ISerializable uygular ve nesneyi seri hale DBNull getirmek için gereken verileri döndürür.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
GetTypeCode()

TypeCode değerini DBNullalır.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Boş bir dize (Empty ) döndürür.

ToString(IFormatProvider)

Belirtilen IFormatProvideröğesini kullanarak boş bir dize döndürür.

Belirtik Arabirim Kullanımları

IConvertible.ToBoolean(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToByte(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToChar(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToDateTime(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToDecimal(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToDouble(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToInt16(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToInt32(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToInt64(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToSByte(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToSingle(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToType(Type, IFormatProvider)

Geçerli DBNull nesneyi belirtilen türe dönüştürür.

IConvertible.ToUInt16(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToUInt32(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

IConvertible.ToUInt64(IFormatProvider)

Bu dönüşüm desteklenmiyor. Bu dönüştürmenin denenmesi bir InvalidCastExceptionoluşturur.

Şunlara uygulanır

Ayrıca bkz.