0

SQLプロシージャに日付を渡そうとしていますが、時間が経過していて、時間が一致しないため、procが失敗します.c#は日付12:00:00を渡していますデータベースは日付00:00:00を示しています

ここに私のコードがあります

public class
datetime dt_value;

JavaScript カレンダーから日付を取得する

DT_Value = Convert.ToDateTime(Request.Form["TextBox_Tracking_ImportDate"]);

mm/dd/yyyy に変換してみてください

string DT_Value2 = DT_Value.ToString("ddMMyyyy");

日付をSQLに渡す

cmd.Parameters.Add(new SqlParameter("@import_date", DT_Value2));


ERROR: Error converting data type nvarchar to smalldatetime.
4

2 に答える 2

2

DateTime直接渡すだけです..

cmd.Parameters.AddWithValue("@import_date", DT_Value);

SQL Server データ型のマッピングを参照してください

于 2013-04-11T16:24:43.743 に答える
1

これが最初の問題です:

string DT_Value2 = DT_Value.ToString("ddMMyyyy");
cmd.Parameters.Add(new SqlParameter("@import_date", DT_Value2));

無意味な文字列変換を実行しているため、データが破損しています。やらないでください。文字列の変換はできる限り避けてください。

DateTimeを直接渡します。

cmd.Parameters.Add(new SqlParameter("@import_date", DT_Value));

または、型を明示的に指定します。

cmd.Parameters.Add("@import_date", SqlDbType.Date).Value = DT_Value;

または、から明示的に日付部分を取得するにはDateTime:

cmd.Parameters.Add("@import_date", SqlDbType.Date).Value = DT_Value.Date;

正直に言うと、パラメータがDateではなく であることを SQL コードが実際に認識している場合、時間部分の概念DateTimeすら存在しないはずです。SQL を投稿していただければ、その側面を診断するのに役立ちます。適切なタイプを使用することは非常に重要です。これにより、作業が非常に簡単になります。

于 2013-04-11T16:25:48.023 に答える