【发布时间】:2016-06-18 23:18:10
【问题描述】:
我试图通过在犯罪数据库中查找他的 NIC 号码来检查一个人是否有过去的犯罪记录。但是查询没有获取任何数据,尽管没有异常并且数据库中存在相关数据,但数据读取器仍然是空的。
请看以下代码:
SqlCommand cmd5 = new SqlCommand("select * from criminal where NIC ="+nic, conn);
string nic = "null";
foreach (var person in allInvolved)
{
conn.Open();
nic = person.NIC;
dr3 = cmd5.ExecuteReader();
if (dr3.HasRows)
{ do something }
else if (!dr3.HasRows)
{ do something else}
}
变量 NIC 中的值正确,我在调试时检查了它。我不知道我哪里错了。如果您需要有关代码的任何其他信息,请询问。
提前致谢。
【问题讨论】:
-
你需要在
dr3ExecuteReader之后拨打read。 -
您将 nic 定义为字符串 - 它实际上是一个字符串值还是一个数字,就像您在问题中描述的那样。如果它是字母数字,则必须在 SQL 中将其括在引号中。对不起 - 这就是我能看到的对我来说很突出的全部
-
你的意思是像
if(dr3.Read())??如果是,那么我已经尝试过了,但它不起作用。 @muratgu -
你说
nic里面有正确的值;但是......那个值是什么是?因为这是一个字符串,几乎所有可用的值将无法正常工作,因为您既没有引用也没有参数化。 -
我猜你之前有不止一个 DML 命令?
标签: c# asp.net sql-server