0

C# から SQL Server に日付を挿入する際に問題が発生しました。DateTime から SQL Server にある列に C# から日付を挿入する正しい方法は何ですか。

現在、私の方法は、文字列の日付を DateTime 形式に変換してからデータベースに挿入することです。

Datetime dt = Convert.ToDateTime(txtDate.Text.Trim());

そうすることで、現在のシステム日付が新しく変換された日付と競合するというエラーに遭遇しました。文字列の日付をデータベースに挿入する正しい方法は何ですか?

4

2 に答える 2

1

SqlParameterを使用して、パラメーター化されたクエリを作成します。このようにして、.Net DateTime オブジェクトを SQL Server に渡します。

何かのようなもの:

using (SqlConnection con = new SqlConnection("yourconnectionstring"))
using (SqlCommand cmd = new SqlCommand("INSERT into yourTable([DateCol]) VALUES (@pDate)", con))
{
    cmd.Parameters.AddWithValue("@pDate", DateTime.Now);
    con.Open();
    cmd.ExecuteNonQuery();
}

あなたの質問について:

文字列の日付をデータベースに挿入する正しい方法は何ですか?

しないでください。代わりに、日付文字列をDateTimeオブジェクトに変換し、パラメーター化されたクエリを使用してデータベースに挿入します。

コメント:

文字列の日付(jquery datepickerを使用)を日時形式に変換するにはどうすればよいですか?

日時ピッカーの形式に使用DateTime.ParseExactして、文字列を DateTime オブジェクトに変換できます。

たとえば、DateTime ピッカーの形式が次のmm/dd/yyyy場合は、次を試すことができます。

DateTime dt = DateTime.ParseExact(dateString, "mm/dd/yyyy", CultureInfo.InvariantCulture);
于 2013-03-04T12:03:17.703 に答える
0

このようなパラメータでクエリを作成します

SqlCommand cmd = new SqlCommand ("insert into T (...) values (@d",db);
cmd.Parameters.AddWithValue("@d",Convert.ToDateTime(txtDate.Text.Trim());
//...
于 2013-03-04T12:11:23.230 に答える