【发布时间】:2020-04-23 05:22:20
【问题描述】:
我有一个SQL 查询,其中supposed 只返回来自业务数据库的ONE 行。基于此,我写了以下sql script 来从结果集中获取数据。
string query = @"select
ProdMaster.data_Id Id,
ProdMaster.data_name Name,
ProdMaster.data_countryname CountryName
from RM.Db
order by ProdMaster.data.FromDate desc"
SqlCommand command = new SqlCommand(query, conn);
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.Read())
{
countryname = reader["CountryName"].ToString();
}
}
但是,数据库中存在一些数据问题,有时它会返回多行。
我们如何检查count 行?如果行多于一个,我们希望返回一个自定义异常。
注意:
- 我不想在查询中使用 COUNT(*)。
- 我们无法控制
RM.Db数据库 - 它可能存在数据问题(第 3 方)
【问题讨论】:
-
这取决于您在
command中的内容。你能证明吗? -
更新了查询
-
您想知道返回的确切行数,还是只想在行数超过 1 时抛出异常?
-
@IliarTurdushev 是的,如果只有一行,那么我想读取该值。
-
如果您将
if更改为while,那么您可以跟踪行数。