[英]How to handle exception in empty return data with IEnumerable<decimal> C#
我正在使用 Dapper 并想使用存储过程返回今天的销售额,但如果今天没有销售,它会返回空值,从而引发异常“'对象引用未设置为对象的实例。” 在与Query
的行。
如何处理那个异常?
使用的代码
public decimal GetAllSaleTotal(string connectionStringName = "POS")
{
string connectionString = GetConnectionString(connectionStringName);
using (IDbConnection connection = new SqlConnection(connectionString))
{
var result = connection.Query<decimal>("dbo.GetTotalSales", commandType:
CommandType.StoredProcedure).First();
return result;
}
}
为什么不使用 try..catch 语句处理异常。
此外,您应该使用var result = connection.Query<decimal?>("dbo.GetTotalSales", commandType: CommandType.StoredProcedure).FirstOrDefault();
这是我可以处理的方法。 使用Take
得到 0 或 1 行,然后检查长度。
public decimal GetAllSaleTotal(string connectionStringName = "POS")
{
string connectionString = GetConnectionString(connectionStringName);
using (IDbConnection connection = new SqlConnection(connectionString))
{
var result = connection.Query<decimal>
(
commandText: "dbo.GetTotalSales",
commandType: CommandType.StoredProcedure
).Take(1).ToList();
return result.Count > 0 ? result[0] : 0M;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.