Я получаю значения из моей базы данных, сохраняю их в списке, изменяю значения и обновляю базу данных. Не появляется сообщение об ошибке.mssql datetimeoffset not regonized
Значения в базе данных сохраняются, как это -> "2014-07-11 06: 35: 09.343 +00: 00"
string dateformat = "dd.MM.yyyy HH:mm:ss zzz";
foreach (var value in vals)
{
dt = DateTimeOffset.ParseExact(value[0].ToString(),dateformat, CultureInfo.InvariantCulture);
String sqlString = "UPDATE SampleValues " +
"SET Value = @VALUE " +
"WHERE ID = @ID AND SampleTime = @DATETIME";
var sqlCommand = new SqlCommand(sqlString, connection);
sqlCommand.Parameters.Add("@ID", System.Data.SqlDbType.UniqueIdentifier).Value = ID;
sqlCommand.Parameters.Add("@DATETIME", System.Data.SqlDbType.DateTimeOffset).Value = dt;
sqlCommand.Parameters.Add("@VALUE", System.Data.SqlDbType.NVarChar, int.MaxValue).Value = value[1];
var excuter = sqlCommand.ExecuteNonQuery();
}
Ничто в базе данных не обновляется. Когда значение анализируется dt = {11.07.2014 06:35:09 +00: 00} Когда я изменяю свой строковый формат даты на «yyyy-MM-dd HH: mm: ss zzz» Я получаю сообщение об ошибке. Строка не была признана действительной DateTime. Я также пробовал CAST (@DATETIME как datetimeoffset (7)), ничего не произошло. Тип данных в Дате базы данных datetimeoffset (3)
Любые идеи?
Приложите больше усилий для форматирования кода в будущем. Не было причин, чтобы тело вашей петли было столь массивным отступом. –
Поскольку формат 'yyyy-MM-dd' не соответствует вашей строке' 11.07.2014'. –
Из взгляда предложения WHERE на первый взгляд кажется, что он вряд ли соответствует любым записям, он должен быть точным совпадением на id и полях времени. Вы уверены, что есть какие-то записи, которые точно соответствуют этому. –