【发布时间】:2019-01-30 04:06:31
【问题描述】:
我想从表中获取日期的最大值。但我总是收到“OutofRangeException”错误。我多次更改查询。
-
Due_Date列具有date数据类型 -
Due_Date_Sample是一个字符串变量 -
Due_Date_var是一个DateTime变量
我的代码:
using (SqlConnection sqlCon = new SqlConnection(Main.connectionString))
{
string commandString = "SELECT TOP 1 FORMAT(Due_Date,'dd-MM-yyyy') FROM Transactions WHERE Plot_Code='" + Plot_Code_var + "' ORDER BY Due_Date DESC;";
SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
sqlCon.Open();
SqlDataReader dr = sqlCmd.ExecuteReader();
while (dr.Read())
{
date_control_var = 2;
Due_Date_Sample = (dr["Due_Date"].ToString());
Due_Date_var = DateTime.Parse(Due_Date_Sample.ToString());
}
dr.Close();
}
【问题讨论】:
-
抛出异常的代码行是什么?
-
检查是否为空。数据库将 DateTime 的 null 除外,但 c# 没有。
-
Due_Date_Sample = dr["Due_Date"].ToString();
-
我正在另一个 try catch 中检查 null ......当值不为 null 时,这段代码运行
-
请考虑在 SQL 中使用参数而不是字符串连接。
标签: c# sql .net sql-server tsql