Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как сделать Дата рождения как в регистраций и отправить в дату в БД

Вщщвщв Знаток (262), на голосовании 1 год назад
Visual Studio C# я использовал masket.textbox и маску в формате 2000-11-11
но входить ошибка в чем проблема? может не так построил структуру date null
Голосование за лучший ответ
вариант холодно Мастер (1248) 1 год назад
Если вы используете маску в формате "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.
ВщщвщвЗнаток (262) 1 год назад
dateString? DateTime date;
date??
вариант холодно Мастер (1248) Вщщвщв, не понял вашего вопроса, правильно задайте его для начало.
вариант холодно Мастер (1248) 1 год назад
Возможно, вы забыли добавить namespace System.Globalization, в котором находится класс CultureInfo, а также namespace System, где находится класс DateTimeStyles. Попробуйте добавить следующие директивы в начале файла:

using System.Globalization;
using System;
вариант холодно Мастер (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("Неверный формат даты.");
}
IRQ Оракул (53026) 1 год назад
Зачем использовать для дат maskedtext?
Похожие вопросы