文字列ビルダーを使用してC#コードでアドホック挿入ステートメントを作成しました。
var str = new StringBuilder(string.Empty);
str.Append(" INSERT INTO Table_01 ( ID,");
str.Append("Comment,");
str.Append("DateTimeStamp,");
str.Append(" ) VALUES( ");
str.Append("'" + Guid.NewGuid() + "',");
str.Append("'" + CaseComment + "',");
str.Append("CONVERT(DATETIME, '" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "',120)");
このコードをSqlParameterに変換しました:-
var str = INSERT INTO Table_01(ID,Comment,DateTimeStamp)
VALUES(@ID,@Comment,@DateTimeStamp)
using (var cmd = new SqlCommand(str, con))
{
cmd.Parameters.Add(new SqlParameter("@ID", Guid.NewGuid()));
cmd.Parameters.Add(new SqlParameter("@Comment", CaseComment));
cmd.Parameters.Add(new SqlParameter("@DateTimeStamp", ?????));
cmd.ExecuteNonQuery();
}
DateTimeを渡す前に、TSQLの場合と同様に、形式が「 convert(varchar、getdate()、120)-2016-10-23 06:10:55(24h) 」と等しいことを確認する必要があります。TSQL Convert式を使用して@datetimeパラメーターを渡すにはどうすればよいですか?