尝试从sql Server中select数据或使用C#windows应用程序插入数据时,出现以下exception。 我在这样的单引号中的select查询的where子句中传递date,如'16/03/2011'exception消息如下所示:
char数据types转换为date时间数据types导致超出范围的date时间值。
是否有任何完美的解决scheme,从sqlserver数据库插入和selectdate无关的操作系统。 即在意大利和英国的操作系统上都可以运行。
如何在Windows 7中打开.win文件?
Oracle SID和服务名称; 连接问题
非常大的写入密集型MysqL导入
我应该使用什么数据库来部署WPF应用程序?
XNA的Windows游戏简单的数据库访问 – .mdb不起作用
如何从unix连接到oracle数据库
领域支持UWP
夜间任务将数据库备份到MS Access
如果您不能使用存储的特效或参数化查询,则可能需要以yyyy-mm-dd格式格式化日期。 防爆。 '2011-03-16'
T-sql示例
INSERT INTO MyTable (SomeDate) VALUES ('2011-03-16')
要么
SELECT * FROM MyTable WHERE SomeDate <= '2011-03-16'
另外,请记住日期的时间部分。 如果时间不重要,那么确保不要存储它,因为它可能会影响你的SELECT查询。
使用存储过程或参数化查询。 这些可以让你传入一个C#的datetime对象,转换将自动为你处理。
我会建议从sqlDataAdapter类开始。 一个简单的例子是:
using (sqlDataAdapter da = new sqlDataAdapter("SELECT * FROM MyTable WHERE myDate = @myDate",somesqlConnection) { da.SelectCommand.Paramaters.Add("@myDate",new DateTime()); DataTable dt = new DataTable(); da.Fill(dt); }
但是,请注意,有许多不同的方法来实现您的目标。 从你的问题,我会想象你正在创建sql字符串,并执行它们对您的数据库。 由于许多原因(包括您所描述的原因),这被认为是一种不好的做法。 阅读关于ORM的实体框架或NHibernate。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。