Если вы используете маску в формате "2000-11-11" в элементе управления MasketedTextBox, то для сохранения этой даты в базе данных в формате даты нужно выполнить следующие шаги:
1. Получить значение даты из элемента управления MasketedTextBox:
string dateString = maskedTextBox1.Text;
2. Преобразовать строку с датой в объект типа DateTime:
DateTime date;
if (!DateTime.TryParseExact(dateString, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
// обработать ошибку преобразования даты
}
3. Сохранить дату в базе данных:
string connectionString = "your connection string";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open ();
SqlCommand command = new SqlCommand("INSERT INTO YourTable (BirthDate) VALUES (@BirthDate)", connection);
command.Parameters.AddWithValue("@BirthDate", date);
command.ExecuteNonQuery();
}
При выполнении этого кода дата будет сохранена в базе данных в формате даты без времени. Если вам нужно сохранять дату и время, то нужно использовать тип данных DateTime2 вместо типа данных Date.
вариант холодно Мастер (1248)
1 год назад
Также, когда вы используете метод TryParseExact, он может вернуть false, если строка с датой не соответствует заданному формату. В этом случае, вы можете использовать значение по умолчанию для даты или сгенерировать исключение. Например:
DateTime date;
if (!DateTime.TryParseExact(dateString, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
// использовать значение по умолчанию
date = DateTime.MinValue;
// или сгенерировать исключение
throw new FormatException("Неверный формат даты.");
}
но входить ошибка в чем проблема? может не так построил структуру date null