簡體   English   中英

無法將日期時間轉換為 C# 中的字符串

[英]Can't convert DateTime to string in C#

嗨,我正在嘗試進行預訂頁面。 如果有人進行預訂,該日期將保存在數據庫中,並且也會顯示在他們的頁面上。 “dayid”列的類型是 postgresql 中的日期。 在 razor 頁面 C# 中,我將 DateTime 類型用於變量 Dayid。 我需要將數據庫中的 dayid 值轉換為字符串。 但我不知道如何解決這個錯誤:“方法'ToString'沒有重載需要1個參數”這是代碼

public List<ReservationModel> ShowReservation()
        {
            var cs = Database.Database.Connector();
            List<ReservationModel> res = new List<ReservationModel>();
            using var con = new NpgsqlConnection(cs);
            {
                string query = "Select dayid, locationid FROM reservation";
                using NpgsqlCommand cmd = new NpgsqlCommand(query, con);
                {
                    cmd.Connection = con;
                    con.Open();
                    using (NpgsqlDataReader dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            res.Add(new ReservationModel { Dayid = dr["dayid"].ToString("MM/dd/yyyy"), Locationid = dr["locationid"].ToString() });
                        }
                    }
                    
                    con.Close();
                }
            }


            return res;
        }

NpgsqlDataReader索引器的編譯時類型只是object ,並且object.ToString()方法是無參數的。 您需要DateTime類型的表達式來調用所需的ToString重載。

可以改為轉換為DateTime

while (dr.Read())
{
    res.Add(new ReservationModel
    {
        Dayid = ((DateTime) dr["dayid"]).ToString("MM/dd/yyyy"),
        Locationid = dr["locationid"].ToString() 
    });
}

(或者找到列索引並調用dr.GetDateTime(...) 。)

但是,我鼓勵您更改 model ( ReservationModel ) 以將值保留DateTime而不是此時將其轉換為字符串。 一般來說,最好盡可能多地將數據保持在最自然的數據類型中,只在邊界處將其轉換為文本/從文本轉換。

暫無
暫無

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

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