SQLデータベースにdate
タイプの列があります。どうすればC#DateTime
に変換し、SQL date
に戻すことができますか?
SQL DATE
は.net DateTime
に直接キャストでき、その逆も可能です。
それを取得するには、 SqlDataReader.GetDatetimeメソッド を使用します
DateTime myDate = myDataReader.GetDateTime(myColumnIndex);
これを設定するには、単純に SqlParameter の値に割り当て、.Date
DateTimeのプロパティ
c#リーダーから日付を取得するには
_DateTime date1;
DateTime.TryParse(reader["datecolumn"], out date1);
_
日付を挿入するには
_string date1="2013-12-12";
DateTime date2;
DateTime.TryParse(reader["datecolumn"],out date2);
SqlCommand cmd= new SqlCommand("Insert into table (dateColumn) Values(@date2)",connection);
cmd.Parameters.AddWithValue("@date2",date2.Date);
_
TryParseは、キャストが成功するとtrueを返し、それ以外の場合はfalseを返します。
VB
リーダーから日付を取得するには
_Dim date1 as Date=CType(reader("dateColumn"),Date)
_
日付を挿入するには
_ Dim date1 as String="2013-12-12" 'you can get this date from an html input of type date
Dim cmd As New SqlCommand("Insert into table (dateColumn) Values(@date1)",connection)
cmd.Parameters.AddWithValue("@date1",CType(date1, Date))
_
注:コードはVBで記述されています。上記のコードと同等のc#を簡単に作成できます。関数名はVBとc#の両方で同じままです。CTypeはc#では使用できません(ただし、変数を明示的にキャストするのと同じです。例:date1=(DateTime)reader("dateColumn");
TryParse
を使用すると、失敗した解析/キャストで例外がスローされません。
構文
_Date.TryParse(reader("dateColumn"), date1)
_
string mydate= Convert.ToDateTime(reader["dateColumn"]).ToShortDateString().ToString());
これらのコードは私のために働いています。これらを試してください