首页 > 解决方案 > 如何确保系统仅将正确的日期格式输入到 sql server

问题描述

我有一个文本框,允许用户输入他们的出生日期。应用程序将日期格式化为“MM/dd/yyyy”。问题是,如果某人的出生日期是 2000 年 1 月 1 日,由于日期无效,我会收到错误消息。如何更正此问题,以便如果用户在文本框中输入 1/1/2000,应用程序在插入 sql server 数据库之前将其转换为 01/01/2000。

      cn.Open();

      String dateFormat = "MM/dd/yyyy";//The format that the txt_dob control uses
      DateTime parsedDate = DateTime.ParseExact(
      txtdob.Text, dateFormat, CultureInfo.InvariantCulture);

        cmd = new SqlCommand("INSERT INTO register ( DOB) VALUES(@DOB, cn);

        cmd.Parameters.AddWithValue("@DOB", txtdob.Text);
        cmd.ExecuteNonQuery();

      MessageBox.Show("saved")
      cn.Close();

标签: c#sql-server

解决方案


正如其他人所说,您应该将日期存储在datetime数据库的列中。然后,当您插入日期时,它应该会自动转换为您期望的 SQL 类型:

cmd.Parameters.Add("@DOB", SqlDbType.Datetime).Value = parsedDate;

推荐阅读