2つのSQLクエリ文字列があります。1つは機能し、もう1つは機能しません。
動作するもの:
string updateLoginTime = "UPDATE DeviceUsers SET lastLogin = '" + dateTime + "' WHERE ID = '" + userID + "'";
これはしません:
string updateText = "UPDATE DocumentsRead SET timeRead = '" + dateTime + "' WHERE userID = '" + userID + "' AND fileName = '" + fileOnly +"'";
エラーが発生します:
varcharデータ型を日時データ型に変換すると、値が範囲外になりました。
どちらのクエリでも、dateTime
パラメータは文字列としてWebメソッドに渡されます。最初のものが機能するのに2番目のものが機能しない理由はありますか?
-編集-
2番目のクエリは次のようにフォーマットされます。
dateTime = DateTime.Now.ToString("dd-MM-yy HH-mm-ss");
using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["EndUsersConnectionString"].ConnectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "UPDATE DocumentsRead SET timeRead = @timeRead WHERE userID = @userID AND fileName = @fileName";
cmd.Parameters.AddWithValue("@timeRead", dateTime);
cmd.Parameters.AddWithValue("@userId", userID);
cmd.Parameters.AddWithValue("@fileName", fileName);
cmd.ExecuteNonQuery();
}
それでも同じエラーが発生します。