从本地数据库加载日期到列表中,错误

丹尼尔·贝克

我有2列的本地数据库。一种是整数数据类型,另一种是日期时间数据类型。

我可以使用以下代码将数据成功加载到数据库中:

dataIn = myPort.ReadLine();
dt = DateTime.Now;

dbConnection.Open();

using (var insertCmd = new SqlCommand(@"INSERT INTO Measurements (Distance,DateTime) VALUES (@Distance,@DateTime)", dbConnection))
{
    insertCmd.Parameters.Add("@Distance", SqlDbType.VarChar).Value = dataIn;
    insertCmd.Parameters.Add("@DateTime", SqlDbType.DateTime).Value = dt;
    insertCmd.ExecuteNonQuery();
}

dbConnection.Close();

但是,当运行下面的代码时,选择一些数据并将其添加到列表中时,出现以下错误。

“将varchar数据类型转换为日期时间数据类型导致超出范围的值”

DateTime today = DateTime.Now;
DateTime yearAgo = DateTime.Now.AddYears(-1);
DateTime sdate = new DateTime();
SqlDataReader reader;
List<DateTime> dates = new List<DateTime>();
SqlCommand selectCmd = new SqlCommand("SELECT * FROM Measurements where DateTime between '" + today + "' And '" + yearAgo + "'", dbConnection);
dbConnection.Open();

reader = selectCmd.ExecuteReader();

while (reader.Read())
{
    sdate = reader.GetDateTime(reader.GetOrdinal("DateTime"));
    dates.Add(sdate);
    textBox1.AppendText(sdate.ToString());
}

reader.Close();
dbConnection.Close();
约书亚·罗宾逊(Joshua Robinson)

正如评论中提到的那样,您不应使用字符串连接来构建选择查询。您应该使用参数化查询,就像插入时一样。这不仅可以消除可能导致您所看到的异常的格式问题,还可以保护您免受SQL Injection攻击

DateTime today = DateTime.Now;
DateTime yearAgo = DateTime.Now.AddYears(-1);
DateTime sdate = new DateTime();
SqlDataReader reader;
List<DateTime> dates = new List<DateTime>();

SqlCommand selectCmd = new SqlCommand("SELECT * FROM Measurements where DateTime betweeen @today AND @yearAgo", dbConnection);
dbConnection.Open();

selectCmd.Parameters.AddWithValue("today", today);
selectCmd.Parameters.AddWithValue("yearAgo", yearAgo);

reader = selectCmd.ExecuteReader();

while (reader.Read())
{
   sdate = reader.GetDateTime(reader.GetOrdinal("DateTime"));
   dates.Add(sdate);
   textBox1.AppendText(sdate.ToString());
}
reader.Close();
dbConnection.Close();

附带说明,您编写的查询将永远不会返回结果。您要求在@todayAND或之前或之后创建的每个记录@yearAgo这就像要求每个大于或等于10且小于或等于5的数字一样;任何大于或等于10的数字都不能小于或等于5。您需要翻转查询中@today@yearAgo参数。

"SELECT * FROM Measurements where DateTime between @yearAgo and @today"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在本地数据库中更新或删除:错误

来自分类Dev

如何从数据库加载ComboBox的列表?

来自分类Dev

从Oracle数据库检索日期列表

来自分类Dev

将JSON数据存储到android中的本地数据库

来自分类Dev

将JSON数据存储到android中的本地数据库

来自分类Dev

从列表<>到数据库记录重复

来自分类Dev

实体框架将本地数据添加到数据库列表中

来自分类Dev

从本地mysql数据库增量加载到Amazon Redshift中-自动化过程

来自分类Dev

数据库到datagridview-日期在标签中时日期之间不起作用

来自分类Dev

将本地数据库数据升级到heroku

来自分类Dev

插入即时日期时间到MySql数据库在Java中精确到毫秒

来自分类Dev

如何从数据库获取数据以获取URL,然后将其放置到毕加索加载中

来自分类Dev

Spring Boot无法从本地MySQL数据库加载实体

来自分类Dev

从数据库到JSP的日期格式日期

来自分类Dev

来自数据库的日期格式在vb.net中获得错误的日期

来自分类Dev

日期返回结果错误,即使日期未存储在数据库中

来自分类Dev

在下拉列表中更改事件从数据库加载数据并填充文本框

来自分类Dev

如何将检索数据从数据库加载到yii的下拉列表中

来自分类Dev

从 SQL 数据库中获取数据到 Bootstrap MVC 中的 html 悬停下拉列表

来自分类Dev

将列表中的数据插入到mysql数据库中

来自分类Dev

使用python将列表中的值从数据帧存储到数据库中

来自分类Dev

数据库中结果的数据列表

来自分类Dev

更新数据库中的数据列表

来自分类Dev

使用Java将日期和时间的csv文件加载到oracle数据库中

来自分类Dev

将本地数据库数据同步到远程数据库

来自分类Dev

如何将数据从Heroku上的数据库复制到本地数据库

来自分类Dev

如何将数据从Heroku上的数据库复制到本地数据库

来自分类Dev

加载类中的数据库表

来自分类Dev

将数据库中的日期导入到Excel工作表中

Related 相关文章

  1. 1

    无法在本地数据库中更新或删除:错误

  2. 2

    如何从数据库加载ComboBox的列表?

  3. 3

    从Oracle数据库检索日期列表

  4. 4

    将JSON数据存储到android中的本地数据库

  5. 5

    将JSON数据存储到android中的本地数据库

  6. 6

    从列表<>到数据库记录重复

  7. 7

    实体框架将本地数据添加到数据库列表中

  8. 8

    从本地mysql数据库增量加载到Amazon Redshift中-自动化过程

  9. 9

    数据库到datagridview-日期在标签中时日期之间不起作用

  10. 10

    将本地数据库数据升级到heroku

  11. 11

    插入即时日期时间到MySql数据库在Java中精确到毫秒

  12. 12

    如何从数据库获取数据以获取URL,然后将其放置到毕加索加载中

  13. 13

    Spring Boot无法从本地MySQL数据库加载实体

  14. 14

    从数据库到JSP的日期格式日期

  15. 15

    来自数据库的日期格式在vb.net中获得错误的日期

  16. 16

    日期返回结果错误,即使日期未存储在数据库中

  17. 17

    在下拉列表中更改事件从数据库加载数据并填充文本框

  18. 18

    如何将检索数据从数据库加载到yii的下拉列表中

  19. 19

    从 SQL 数据库中获取数据到 Bootstrap MVC 中的 html 悬停下拉列表

  20. 20

    将列表中的数据插入到mysql数据库中

  21. 21

    使用python将列表中的值从数据帧存储到数据库中

  22. 22

    数据库中结果的数据列表

  23. 23

    更新数据库中的数据列表

  24. 24

    使用Java将日期和时间的csv文件加载到oracle数据库中

  25. 25

    将本地数据库数据同步到远程数据库

  26. 26

    如何将数据从Heroku上的数据库复制到本地数据库

  27. 27

    如何将数据从Heroku上的数据库复制到本地数据库

  28. 28

    加载类中的数据库表

  29. 29

    将数据库中的日期导入到Excel工作表中

热门标签

归档