c# - 如何确保系统仅将正确的日期格式输入到 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();
解决方案
正如其他人所说,您应该将日期存储在datetime
数据库的列中。然后,当您插入日期时,它应该会自动转换为您期望的 SQL 类型:
cmd.Parameters.Add("@DOB", SqlDbType.Datetime).Value = parsedDate;
推荐阅读
- javascript - VueJS - 绑定自定义道具不适用于 b-form 组件
- python-3.x - 我想删除特定值不增加的行。有更快/更优雅的方式吗?
- c# - 如何计算具有相似时间跨度的一天中的时间跨度总和
- spring - 使用 powermock 和 junit 运行 Spring Boot 集成测试时出错?
- node.js - Node.js - Async.js 映射函数只显示第一次迭代的结果?
- java - 使用没有 API 的 Java 集成 QuickBooks 桌面应用程序
- sql - 使用 regexp_substr 进行操作
- db2 - 在 Mac 上访问 DB2 Dev 上的管理员
- excel - VBA 运行时错误:为什么我在使用 mailenvelope 通过 Outlook 发送邮件时出现错误
- php - 如何解决 ec2、弹性 beanstalk php 应用程序的连接错误问题