asp.net取到数据库里的值为空值的时候报错“在没有任何数据时进行无效的读取尝试”

stringconnstr=WebConfigurationManager.ConnectionStrings["zhanjianziliao"].ConnectionS... string connstr = WebConfigurationManager.ConnectionStrings["zhanjianziliao"].ConnectionString;
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
string yhm = TextBox1.Text;
string ma = TextBox2.Text;
string dzyx = TextBox3.Text;
string yanzhen = "select Name,Passward from yonghu where Name='" + yhm + "'";
SqlCommand selectcmd = new SqlCommand(yanzhen, conn);
SqlDataReader sdr;
sdr = selectcmd.ExecuteReader();
sdr.Read();
if (sdr["Name"] == DBNull.Value)
{
string sqlstr = "insert into yonghu values('" + yhm + "','" + ma + "','" + dzyx + "')";
SqlCommand cmd = new SqlCommand(sqlstr, conn);
cmd.ExecuteNonQuery();
conn.Close();
TextBox1.Text = "";
TextBox2.Text = "";
TextBox3.Text = "";
Response.Write("<script>alert('注册成功!请在右侧登录!')</script>");
}
else
{
conn.Close();
Response.Write("<script>alert('该用户名已被注册!')</script>");
}

if (sdr["Name"] == DBNull.Value)这句在我的数据表里的Name字段为null的时候会报错
下面是我的数据库

例:
当yhm为hh,ma为hh时,会显示该用户名已被注册!
当yhm为cc,ma为cc时,会提示出错
展开
 我来答
阳光的雷咩咩
2016-05-11 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7842万
展开全部

那句之前判断一下:

bool b = sdr.Read();
if(b)
//再进行下面报错那一段
更多追问追答
追问
可以解释下这个语句的意思吗?我看不明白
bool b =sdr.Read();
if (b)
if (sdr["Name"] == DBNull.Value)
:
:
:
这样子,button1按下后没有任何反应
追答
那就说明没有任何符合的数据行,更别说列了。
梦想程序猿
2016-05-11 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:62
采纳率:0%
帮助的人:44.1万
展开全部
if (isdfnull(sdr["Name"]))
更多追问追答
追问
报错“当前上下文中不存在isdfnull”
你是说if (isnull(sdr["Name"]))吗
追答
isdbnull()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式