gpt4 book ai didi

c# - 使用带有日期时间的选择查询作为参数抛出 InvalidCastException

转载 作者:行者123 更新时间:2023-11-29 13:55:55 26 4
gpt4 key购买 nike

我想统计某个时间段之间的记录数。

我使用 Npgsql 准备查询,然后添加变量部分(出于安全原因):

  lCommand.CommandText = 
"select count(*) from eggs where machineserial = :p1 and timestamp > :p2 and timestamp < :p3;";
lCommand.Parameters.AddWithValue("p1", mId);
lCommand.Parameters.Add("p2", NpgsqlTypes.NpgsqlDbType.Timestamp);
lCommand.Parameters["p2"].Value = aStartDate;
lCommand.Parameters.Add("p3", NpgsqlTypes.NpgsqlDbType.Timestamp);
lCommand.Parameters["p3"].Value = aEndDate ;
int lNumberEggs = 0;

try
{
lNumberEggs = (int)await lCommand.ExecuteScalarAsync();
}
finally
{
Helpers.clsDatabaseHelper.FinishCommand(lCommand);
}

执行查询时,它因 InvalidCastException 而崩溃。

我做错了什么?

最佳答案

啊,我想通了我做错了什么。

当然还有一个cast,就是ExecuteScalarAsync函数前面的(int)。这将返回一个对象,但显然不是一个 int!

使用 Convert.ToInt32 就可以了。

关于c# - 使用带有日期时间的选择查询作为参数抛出 InvalidCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31967332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com