簡體   English   中英

如何從C#中的DataRow獲取DateTime值

[英]How to get DateTime value from DataRow in C#

我正在嘗試從DataTableDataRow獲取雇員的出生日期,但是我遇到了一個例外:

無法將字符串識別為有效的DateTime。

請幫助我從DataRow獲取DateTime類型的值。 以下是我的代碼。

List employeeList = new List();
foreach (DataRow dr in dt.Rows)
{
   DateTime t = DateTime.Now;
   employeeObject.EmployeeID = Convert.ToInt64(dr["empId"]);
   employeeObject.EmployeeFirstName = Convert.ToString(dr["empFirstName"]);
   employeeObject.EmployeeMiddleName = Convert.ToString(dr["empMiddleName"]);
   employeeObject.EmployeeLastName = Convert.ToString(dr["emptLastName"]);
   employeeObject.EmployeeGenderStr = Convert.ToString(dr["empGender"]);
   employeeObject.EmployeeDateOfBirth = Convert.ToDateTime(dr["empDOB"]);
   //employeeObject.EmployeeDateOfBirth = DateTime.ParseExact(dr["empDOB"].ToString().Replace(";", " "), "m/d/yyyy hh:mm:ss", CultureInfo.InvariantCulture);// DateTime.Parse(dr["empDOB"].ToString());
   // employeeObject.EmployeeDateOfBirth = Convert.ToDateTime(dr["empDOB"].ToString().Replace(";", " "), System.Globalization.CultureInfo.GetCultureInfo("hi-IN").DateTimeFormat); ;
   employeeObject.EmployeeContactno = Convert.ToDouble(dr["empContactNo"]);
   employeeObject.EmployeeEmailId = Convert.ToString(dr["empEmailId"]);
   employeeObject.EmployeeAddress = Convert.ToString(dr["empAddress"]);
   employeeObject.EmployeeDesignation = Convert.ToString(dr["empDesgnation"]);
   employeeList.Add(employeeObject);
}
employeeObject.EmployeeDateOfBirth= Convert.ToDateTime(dr["empDOB"]);

嘗試使用此方法,並將“ yyyy-MM-dd”替換為所需的格式。

 DateTime.ParseExact(dr["empDOB"].toString(), "dd/MM/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture)

綁定前檢查null。

據我所知,除非檢查是在您的數據庫中完成的,否則不會看到對null的任何檢查並將其替換為datetime minValue。 我遇到了類似的問題,該檢查解決了該問題。

如果(!string.IsNullOrEmpty(dr [“ empDOB”])){ employeeObject.EmployeeDateOfBirth = Convert.ToDateTime(dr["empDOB"]);

} else {DateTime DOB = DateTime.MinValue;}

嘗試這個:

employeeObject.EmployeeDateOfBirth = DateTime.ParseExact(dr["empDOB"].toString(), 
"d/M/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);

您可以使用:

employeeObject.EmployeeDateOfBirth = dr["empDOB"] != null ? 
         (DateTime)dr["empDOB"] : 
          DateTime.MinValue;

如果為null則將為您提供MinValue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM