我在我的數據庫中有一個日期列,它不是日期時間,所以這些值沒有附加時間。從SQLDataSource修改日期/時間
然而,當我拖我的網頁上放置一個的SqlDataSource和綁定dropdownlist
它顯示的日期,它會自動添加的12:00:00 AM
的時間。
我知道它爲什麼這樣做,但我不知道如何擺脫它。我是否需要將其與代碼隱藏綁定?
有沒有簡單的解決辦法呢?
我在我的數據庫中有一個日期列,它不是日期時間,所以這些值沒有附加時間。從SQLDataSource修改日期/時間
然而,當我拖我的網頁上放置一個的SqlDataSource和綁定dropdownlist
它顯示的日期,它會自動添加的12:00:00 AM
的時間。
我知道它爲什麼這樣做,但我不知道如何擺脫它。我是否需要將其與代碼隱藏綁定?
有沒有簡單的解決辦法呢?
集DropDownList.DataTextFormatString它可能是有用的。
<asp:DropDownList
id="datesList"
runat="server"
dataTextFormatString="{0:dd/MM/yyyy}"/>
然後數據綁定控件將應用正確的格式後:
將格式添加到字段或列定義。例如Gridview:
<asp:boundfield datafield="Your_Date_Column" dataformatstring="{0:MMMM d, yyyy}" htmlencode="false" />
順便說一句,其他方法是使用ViewModel - 類,它只需要顯示數據。在這個類中,不需要使用DateTime或其他數據類型:只有字符串。例如,您可以在此處定義一些顯示默認值:如果值爲null,則顯示文本「UNDEFINED」或您需要的內容。在某些情況下,這種方法可以使您準備顯示數據。
你能告訴你的SQL查詢。有你使用(VARCHAR,日期,103)方法轉換爲查詢
數據庫中沒有時間,所以我沒有在我的sql語句中使用convert,這是一個.net運行時問題。 – prospector
你用dataTextFormatString嘗試了你的DDL嗎 – Bhagavan
C#沒有日期數據類型,雖然從SQL值(日期)數據類型是轉換爲時間字段在C#。因此,儘可能使用convert(varchar,date,103)將sql日期轉換爲sql中的nvarchar,儘管C#將它視爲字符串。
我認爲你仍然可以在生成的代碼中對其進行格式化 – Sandy