Ошибка вызова NpqsqlCommand.ExecuteScalar для получения времени БД - PullRequest
0 голосов
/ 29 сентября 2010

У меня есть метод, который получает DateTime из БД со следующим кодом:

NpgsqlCommand cmd = ActiveConnection.CreateCommand (); cmd.CommandText = "SELECT NOW ()";

object obj = cmd.ExecuteScalar (); return (DateTime) obj;

Иногда InvalidCastException генерируется при преобразовании результата в DateTime. Иногда результат (obj) равен нулю. Есть идеи, почему это происходит? у вас есть идеи о том, где начать царапать?

ТИА Хосе Таварес

1 Ответ

1 голос
/ 18 ноября 2010

Это потому, что в postgresql нет функции NOW ().Используйте это вместо:

//create NpgsqlCommand instance, cmd
cmd.CommandText = "select current_timestamp";
DateTime dt;
DateTime.TryParse(cmd.ExecuteScalar().ToString(), out dt);
return dt;
...