У меня странная проблема, связанная с Microsoft SQL Compact Edition.В приложении Windows.Forms я пытаюсь изменить базу данных, созданную этим же приложением (.Net 2.0).База данных отправляется на Windows Mobile Phone позже, но это не важно.Важно то, что на обычных региональных настройках моего компьютера (английский (США)) вставка значений DateTime в базу данных происходит без проблем.Однако, когда я переключаю язык на голландский (Нидерланды), я получаю следующую ошибку:
"Произошла ошибка в части формата даты. [Выражение (если известно) =]"
Я отследил его до того, как DateTime выглядит в NL.Однако я не использую DateTime.ToString ().Я добавляю его в операторы вставки / обновления SQL просто как "column =" + DateTime.Это прекрасно работает в «en-US», но когда я переключаюсь на голландский, он взрывается.
Я исправил это, создав метод расширения для типа данных DateTime, например:
/// <summary>
/// Transforms a DateTime from various cultures into what SQL compact expects to get.
/// </summary>
/// <param name="original">DateTime to process.</param>
/// <returns>A SQL-friendly string.</returns>
public static string _ToSQLDateTimeString (this DateTime? original)
{ //No provided Date? Bye.
if (original == null) return null;
IFormatProvider usDate = new CultureInfo("en-US");
return ((DateTime)original).ToString(usDate);
}
Но я бы хотел, чтобы кто-нибудь подтвердил / улучшил мое решение.Может я что то пропустил?