2013-07-19 56 views
1

我在我的數據庫中有一個日期列,它不是日期時間,所以這些值沒有附加時間。從SQLDataSource修改日期/時間

然而,當我拖我的網頁上放置一個的SqlDataSource和綁定dropdownlist它顯示的日期,它會自動添加的12:00:00 AM的時間。

我知道它爲什麼這樣做,但我不知道如何擺脫它。我是否需要將其與代碼隱藏綁定?

有沒有簡單的解決辦法呢?

+0

我認爲你仍然可以在生成的代碼中對其進行格式化 – Sandy

回答

2

集DropDownList.DataTextFormatString它可能是有用的。

<asp:DropDownList 
id="datesList" 
runat="server" 
dataTextFormatString="{0:dd/MM/yyyy}"/> 

然後數據綁定控件將應用正確的格式後:

1

將格式添加到字段或列定義。例如Gridview:

<asp:boundfield datafield="Your_Date_Column" dataformatstring="{0:MMMM d, yyyy}" htmlencode="false" /> 

順便說一句,其他方法是使用ViewModel - 類,它只需要顯示數據。在這個類中,不需要使用DateTime或其他數據類型:只有字符串。例如,您可以在此處定義一些顯示默認值:如果值爲null,則顯示文本「UNDEFINED」或您需要的內容。在某些情況下,這種方法可以使您準備顯示數據。

1

你能告訴你的SQL查詢。有你使用(VARCHAR,日期,103)方法轉換爲查詢

+0

數據庫中沒有時間,所以我沒有在我的sql語句中使用convert,這是一個.net運行時問題。 – prospector

+0

你用dataTextFormatString嘗試了你的DDL嗎 – Bhagavan

0

C#沒有日期數據類型,雖然從SQL值(日期)數據類型是轉換爲時間字段在C#。因此,儘可能使用convert(varchar,date,103)將sql日期轉換爲sql中的nvarchar,儘管C#將它視爲字符串。