2017-10-31 11 views
0

SELECTステートメントの結果をGridviewに表示するC#Webフォームがあります。私は日付として格納するStart_Dateと呼ばれるSQLの列を持っています。 SQLでは、それは私が私のグリッドをバインドするときしかし、私はいつもSQLに日付のみが格納されるWebフォームの表示

10/31/2017 12:00:00 AM 

私のSELECT文は、私もStart_Dateをキャストしようとしたこの

SELECT Start_Date FROM Table WHERE Start_Date > GETDATE() 

のように見えます。この

2017-10-31 

のように見えます日付として表示されますが、それでも時間は表示されます。 SQLカラムがそれを格納していない場合は、どこから来るのでしょうか?

私のバインドもやはり単純です。

DataTable dt = new DataTable(); 
SqlConnection con = new SqlConnection(str); 
SqlCommand cmd = new SqlCommand(query, con); 
cmd.CommandType = commandType; 

SqlDataAdapter sda = new SqlDataAdapter(cmd); 
sda.Fill(dt); 
gvPending.DataSource = dt; 
gvPending.DataBind(); 
+4

[すべてのSQL Serverの日付の種類が.NETのDateTimeにマップされます](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql-server-data-type-マッピング)。 DateTimeには時間コンポーネントがあります。表示する必要はありません。異なる形式で日付を表示するようにGridViewを変更するだけです。 – mason

+1

「2017-10-31」<=>「2017-10-31 00:00:00」<=>「10/31/2017 12:00:00 AM」単にプレゼンテーション事項です。 – lad2025

+0

ありがとうございます。バインドされたフィールドには、SQLに表示された内容が表示されます。それがC#のデフォルトを取ることを認識していませんでした。 – maltman

答えて

1

あなたはGridViewのを使用している場合、あなたはあなたの日時をフォーマットすることができます。

<asp:boundfield datafield="Your_Date_Column" dataformatstring="{0:dd/MM/yyyy}" /> 

それとも、必要に応じて使用すると、日時フィールドの書式をあなたのクラスの新しいプロパティを作成することができ、そのプロパティをバインドグリッドの列に移動します。

それ以外の場合は、SQLから直接値を取得してバインドすると、時刻が表示されます。

+0

ありがとうございます。魅力のように働いた。 – maltman

+0

ようこそ!あなたのために働くならば、答えとしてそれを受け入れて、他人を助けることができるようにしてください。 – Coding

関連する問題