2016-10-08 1 views
1

データベースからdateフィールドを読み込み、ラベルフィールドに設定しようとしています。イム、データベースから読み込み、ラベルに設定するときにC#で日付形式を変更してください

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString); 
con.Open(); 

SqlCommand cmd = new SqlCommand("select BirthDate from Student where [email protected]", con); 
cmd.Parameters.AddWithValue("@name", "Mano"); 

SqlDataAdapter da = new SqlDataAdapter(cmd); 
DataTable dt = new DataTable(); 
da.Fill(dt); 

lblName.Text = dt.Rows[0]["Date"].ToString(); 

を次のコードを使用して、しかし、これは形式02-05-1991 00:00:00におけるラベル内のデータ値を表示しますが、私は05-02-1991としてフォーマットdd-mm-yyyyでそれを表示したいです。だから私は、次のコードを試してみました:

lblName.Text = dt.Rows[0]["BirthDate"].ToString("dd-mm-yyyy"); 

をしかし、それはこのエラーを示しています

No overload for method ToString takes 1 argument

はどのようなフォーマットを変更できますか?

答えて

1

が有効なDateTimeを表すと仮定すると、ToString()を呼び出す前に変換してください。

lblName.Text = Convert.ToDateTime(dt.Rows[0]["BirthDate"]).ToString("dd-mm-yyyy"); 

あなたは現在のオブジェクトのクラスではなく、DateTimeクラスのToString()メソッドを呼び出しているので、日付フォーマッタを可能過負荷はありません。

+0

SQLのテーブルで 'date'フォーマットを使用していますが、値が' 05-02-1991'ですが、C#では 'dd-mm-yyyy'としてフォーマットを指定すると' 02-05- 1991'はSQLが 'date-date'フォーマットを' mm-dd-yyyy'として保存していることを意味しますか? –

+0

@Mano「DateTime」は、日付、時刻、タイムゾーン、文化情報などのデータの集合です。それを表示するには、一方向にフォーマットする必要があります。あなたが05-02を2月5日とすると仮定すると、代わりに5月2日と解釈されているように見えます。おそらくC#のパターンを 'mm-dd-yyyy'に変更するだけかもしれません。 –

1

日付の値をDateTimeとして扱い、必要な書式設定オプションを持つDateTime構造体からToStringのオーバーロードを呼び出す必要があります。

実際には、行の値を文字列に変換しています。文字列には、日付の書式設定方法については何も知られていません。

DateTime t = dt.Rows[0].Field<DateTime>("Date"); 
lblName.Text = t.ToString("dd-MM-yyyy"); 

また、月の部分の正しい形式にも注意してください。大文字のMです。小文字のmは分です。

関連する問題