Читайте из SQL в визуальные студии DateTime

1

У меня проблема, я пытаюсь прочитать из базы данных Sql, ее называется Тестирование и содержит таблицу под названием TimeDate, внутри которой он имеет свойство DoB (Дата рождения) со значением Date (not DateTime), Внутри визуальных студий я читаю из базы данных и возвращает Date в список переменных, называемый DoB, с типом данных DateTime (насколько я знаю, нет только типа данных "Дата"). Но когда я показываю информацию, которую я хочу видеть, это месяц, день и год (3/27/1990), но я действительно вижу это 3/27/1990 12:00:00 AM... я dont хотите, чтобы часть времени отображалась, даже если я использую свойство.Date, она по-прежнему отображает временную часть, есть ли способ избавиться от этого?

Это код, который я использую для чтения/записи в базу данных и отображения информации в консоли

static void Main(string[] args)
    {
        Console.WriteLine("What is the birthday you would like to input?(YYYY-MM-DD)");
        DateTime newDate = Convert.ToDateTime(Console.ReadLine());
        NewDate(newDate);

        List<DateTime> dates = Read("FindDates", new SqlParameter[] { });
        Console.WriteLine("\n");
        foreach (DateTime date in dates)
        {
            Console.WriteLine(date);
        }
        Console.ReadKey();
    }
    private static string connectionString = @"Server = ONSHORE-PC\SQLEXPRESS;Database = Testing;Trusted_Connection = True;";

    public static void NewDate(DateTime date)
    {
        try
        {
            SqlParameter[] parameters = new SqlParameter[] {
            new SqlParameter("@TimeDate", date.Date)
        };
            Write("InputDate", parameters);
        }
        catch (Exception e)
        {
            Console.WriteLine("Error Writing to Database");   
        }
    }
    public static int Write(string statement, SqlParameter[] parameters)
    {
        using (SqlConnection con = new SqlConnection(connectionString))
        {
            using (SqlCommand command = new SqlCommand(statement, con))
            {
                command.Parameters.AddRange(parameters);
                command.CommandType = System.Data.CommandType.StoredProcedure;
                con.Open();
                return Convert.ToInt32(command.ExecuteScalar());
            }
        }
    }
    private static List<DateTime> Read(string statement, SqlParameter[] parameters)
    {
        using (SqlConnection con = new SqlConnection(connectionString))
        {
            using (SqlCommand command = new SqlCommand(statement, con))
            {
                command.Parameters.AddRange(parameters);
                command.CommandType = System.Data.CommandType.StoredProcedure;
                con.Open();
                SqlDataReader data = command.ExecuteReader();
                List<DateTime> Dates = new List<DateTime>();
                while (data.Read())
                {
                    DateTime date = new DateTime();
                    date = Convert.ToDateTime(data["DoB"]);
                    Dates.Add(date);
                }
                return Dates;
            }
        }
    }
  • 0
    используйте .ToString ("дд / мм / гггг") для переменной VS
Теги:
sql-server
datetime
visual-studio-2012

2 ответа

0
Лучший ответ

Поскольку у вас уже есть DateTime, вам просто нужно форматировать его строковое представление, например;

yourDateTime.ToString("M'/'dd'/'yyyy")

или

yourDateTime.ToString("M/dd/yyyy", CultureInfo.InvariantCulture)

Я сильно подозреваю, что вы используете только свой DateTime как yourDateTime и, вероятно, в части представления, это вызовет метод DateTime.ToString() который использует стандартный формат даты и времени по умолчанию "G"

И этот спецификатор возвращает ShortDatePattern и. Комбинация LongTimePattern с разделенным пробелом вашего CurrentCulture.

  • 0
    Это делает с тех пор, спасибо
  • 0
    @MarkNarcarti Добро пожаловать.
0

Если вы просто пытаетесь отобразить dd/MM/yyyy

    var dateString = date.ToString("dd/MM/yyyy");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню