Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm thế nào để kiểm tra xem giá trị DataReader không phải là null hay không?

Nothing có nghĩa là một đối tượng chưa được khởi tạo, DBNull có nghĩa là dữ liệu không được xác định / thiếu. Có một số cách để kiểm tra:

' The VB Function
If IsDBNull(Reader.Item(0)) Then...

GetDateTime có vấn đề vì bạn đang yêu cầu nó chuyển đổi một giá trị không thành DateTime. Item() trả về Đối tượng có thể được kiểm tra dễ dàng trước đó chuyển đổi.

 ' System Type
 If System.DBNull.Value.Equals(...)

Bạn cũng có thể DbReader. Điều này chỉ hoạt động với chỉ mục thứ tự, không phải tên cột:

If myReader.IsDbNull(index) Then 

Dựa trên cơ sở đó, bạn có thể kết hợp các chức năng với tư cách là thành viên Lớp được chia sẻ hoặc được làm lại thành Phần mở rộng để kiểm tra DBNull và trả về giá trị mặc định:

Public Class SafeConvert
    Public Shared Function ToInt32(Value As Object) As Integer
        If DBNull.Value.Equals(Value) Then
            Return 0
        Else
            Return Convert.ToInt32(Value)
        End If
    End Function

    Public Shared Function ToInt64(Value As Object) As Int64
        If DBNull.Value.Equals(Value) Then
            Return 0
        Else
            Return Convert.ToInt64(Value)
        End If
    End Function

    ' etc
End Class

Cách sử dụng:

myDate = SafeConvert.ToDateTime(Reader.Item(0))

Đối với công cụ chuyển đổi DateTime, bạn phải quyết định trả về cái gì. Tôi thích làm những việc đó một cách riêng lẻ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách trả về các tham số đầu ra oracle từ một thủ tục được lưu trữ trong .NET

  2. Hiển thị tên của tất cả các ràng buộc cho một bảng trong Oracle SQL

  3. Truy vấn SQL Oracle:Truy xuất các giá trị mới nhất cho mỗi nhóm dựa trên thời gian

  4. Làm thế nào để chuyển đổi dấu thời gian với mili giây sang ngày tháng trong Oracle

  5. Làm cách nào để tính toán kích thước bảng trong Oracle