0

我能够将 Access 中的数据收集到我的 texbox 中,但日期不会停止给出错误。有没有办法抓住日期或者那是不可能的?在这个网站上没有任何地方可以找到将日期转换为字符串以显示到文本框中的souluiton。任何帮助都会很棒,否则我必须将数据库日期更改为字符串。

//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();
    }
4

3 回答 3

1

使用 DataReader 对象的“Get”方法:

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

一般来说,避免使用 Object.ToString()。

永远不要将日期作为字符串存储在数据库中,始终使用数据库的内置“日期”或“日期时间”类型。还将日期时间值存储为 UTC,而不是本地的。

于 2013-02-07T09:07:46.860 回答
0

看着那(这 :-

方法一:

string strQueryString = "SELECT STU_NAME, STU_ADDRESS, 
CONVERT(varchar,STU_BIRTHDATE,103) as STU_BIRTHDATE
FROM Students WHERE STU_ID = @SID";

方法二:

string strQueryString = "SELECT STU_NAME, STU_ADDRESS, 
FORMAT(STU_BIRTHDATE, "dd/mm/yyyy") as STU_BIRTHDATE
FROM Students WHERE STU_ID = @SID";
于 2019-10-14T14:56:04.120 回答
0
string strNewDate = startDate.ToString("yyyyMMdd");

你可以使用任何格式。就我而言,我使用过"yyyyMMdd",但有很多格式。

于 2017-02-03T17:00:21.997 回答