类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
for(int i=0;i<newvalue.Length ;i++)
try
{
objconn.Open ();
string sql="select _role from userinformation where _userid="+newvalue[i]+"";
SqlCommand cmd=new SqlCommand (sql,objconn);
object obuser=cmd.ExecuteScalar();
if(obuser is DBNull )
{
flag=false;
}
else
{
string user=(string) obuser.ToString().Trim ();
}
}
为什么这句 if(obuser is DBNull ) 不起作用,
数据表里有或没有满足条件的记录都会执行else 下的语句。
网友回答:
用if(obuser is nothing)
DBNull是相对数据库而说的,楼上的应该可以
if(obuser is DBNull )
改成
if(obuser == null )
请查看 MSDN 关于 SqlCommand.ExecuteScalar 部分:
“结果集中第一行的第一列或空引用。”
if(obuser is DBNull.Value )
if((obuser == null) || (obuser == DBNull.Value) )
应该是nothing
if(obuser ==null || obuser ==System.DBNull.Value)
{
}
错了,错了,好像有没有记录都会返回一个值,当然一直执行ELSE了
单步跟踪一下,看有记录和没记录各返回什么值,我现在也不去看资料了,一时记不清
obuser == null