如何检查datareader是否为null?

Sco*_*rke 0 c# asp.net dbnull datareader sqldatareader

我有一个aspx页面,允许用户将修改后的条目提交到数据库中,但是当用户单击Submit以触​​发存储过程时,我想首先运行检查以查看是否存在具有相同关系的已修改行.

我传递以下查询的结果:

SELECT SwitchRoom.ModifiedID FROM SwitchRoom WHERE 
    SwitchRoomID = @ChkSwitchRmID", constring; 
Run Code Online (Sandbox Code Playgroud)

进入a DataReader以确定该关系是否存在.

我需要它来确定阅读器是否返回NULL以允许执行该过程,如果没有,则不允许用户保存信息.

我尝试过以下方法:

if (dbreader = NULL)
{
 Fire Procedure
}
else
{
 "Error Message"
}
Run Code Online (Sandbox Code Playgroud)

而且我甚至试图将读者传递给一个datatable并且运行它而没有任何运气.

如何检查DataReader的结果null

Joh*_*nFx 5

我更喜欢使用ExecuteScalar和一个计算匹配行的查询:

"SELECT count(*) FROM SwitchRoom WHERE SwitchRoomID = @ChkSwitchRmID"
Run Code Online (Sandbox Code Playgroud)

然后将Execute标量的结果与零进行比较.不需要空检查.

如果您确实想使用reader方法,可以使用以下属性来检查它是否有任何行.即使它没有返回任何内容,该对象也不会为null.

if (dbReader.HasRows) {....}
Run Code Online (Sandbox Code Playgroud)