2013-02-07 16 views
0

我能夠從Access中收集數據到我的texbox中,但日期不會停止提供錯誤。有沒有辦法獲取日期或者是不可能的?沒有在這個網站的任何地方可以找到將日期轉換爲字符串以顯示在文本框中的搜索結果。任何幫助將是偉大的,或者我必須將數據庫日期更改爲字符串。如何將MS訪問日期轉換爲C中的字符串#

//Dates not displaying, only errors in the while loop 
//strBirthday = dr["STU_BIRTHDAY"].ToString(); This won't diplay like the other 2 strings. 

protected void btnQuery_Click(object sender, EventArgs e) 
    { 
     OleDbConnection con = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\\collection\\database.accdb"); 
     string strQueryString = "SELECT STU_NAME, STU_ADDRESS, STU_BIRTHDATE FROM Students WHERE STU_ID = @SID"; 
     OleDbCommand com = new OleDbCommand(strQueryString, con); 
     com.Parameters.AddWithValue("SID", txtStuID.Text.Trim()); 
     con.Open(); 
     OleDbDataReader dr = com.ExecuteReader(); 

     string strName = ""; 
     string strAddress = ""; 
     string strBirthday = ""; 

     while (dr.Read()) 
     { 
      strName = dr["STU_NAME"].ToString(); 
      strAddress = dr["STU_ADDRESS"].ToString(); 
      strBirthday = dr["STU_BIRTHDAY"].ToString(); 
     } 
     txtStuName.Text = strName; 
     txtStuAddress.Text = strAddress; 
     txtStuBirthDate.Text = strBirthday; 
     dr.Close(); 
     con.Close(); 
    } 

回答

1

使用DataReader對象的 「獲取」 的方法:

DateTime dt = dr.GetDateTime("STU_BIRTHDAY"); 
txtBirthday = dt.ToString(CultureInfo.CurrentCulture, "yyyy-MM-dd"); 

一般來說,避免Object.ToString()。

從不將日期作爲字符串存儲在數據庫中,始終使用數據庫的內置「日期」或「日期時間」類型。還將UTC的日期時間值存儲在本地。

0
string strNewDate = startDate.ToString("yyyyMMdd"); 

您可以使用任何格式。在我的情況下,我用"yyyyMMdd",但有很多格式。

相關問題