Tôi gần như ghét hỏi câu hỏi này có vẻ như nó đã được hỏi một triệu lần trước nhưng ngay cả với tôi nghiên cứu các câu hỏi khác tôi vẫn không thể hình dung điều này trong trường hợp của tôi.Nullable DateTime với SQLDataReader
Tôi đọc rằng DateTime là một loại nullable và tôi đã thử một vài ví dụ nhưng tôi đang cố gắng tìm ra nếu nó là NULL trong cơ sở dữ liệu SQLDATAREADER của tôi là không.
Lỗi
System.Data.SqlTypes.SqlNullValueException: Dữ liệu là Null. Phương thức hoặc thuộc tính này không thể được gọi trên các giá trị Null. '
DetailsClass
private DateTime? startingDate;
public DateTime? StartingDate
{
get{ return startingDate; }
set{ startingDate = value; }
}
// constructor
Public DetailsClass(DateTime? startingDate)
{
this.startingDate = startingDate;
}
DBClass
using (SqlConnection con = new SqlConnection(connectionString))
using (SqlCommand cmd = con.CreateCommand())
{
List<DetailsClass> details = new List<DetailsClass>();
DetailsClass dtl;
try
{
con.Open();
cmd.CommandText = "Stored Procedure Name";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@MyParameter", myparameter);
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
dtl = new DetailsClass((
reader.GetInt32(reader.GetOrdinal("MEMBERSHIPGEN"))),
reader.IsDBNull(1) ? null : reader.GetString(reader.GetOrdinal("EMAIL")),
reader.GetDateTime(reader.GetOrdinal("STARTINGDATE")));
details.Add(dtl);
}
reader.Close();
return details;
}
}
"Tôi đọc mà DateTime là một loại nullable" - bạn đọc sai. 'DateTime' không phải là nullable,' DateTime? 'Là. – Corak
Tôi hiểu những gì bạn đang nói bây giờ tôi chỉ để lại dấu chấm hỏi – Jay