日期:2014-05-17  浏览次数:20821 次

啦啦啦一道弱弱得小题求解答啦
我在数据库中有一张表叫做userinfo 表里面有一列叫做 nickname
现在我得到了一个id 想通过这个id在表中查询 这个nickname的值
然后把得到的nickname 赋值给一个一个lalbel
我这么写有错么?
db.Conn.Open();
                string sql = string.Format("select nickname from userinfo where uid ='{0}'", id);
                SqlCommand cmd = new SqlCommand(sql,db.Conn);
                int t = (int)cmd.ExecuteScalar();
                lalnickname.text=t.tostring();


这样写总是报错啊 为什么? 难道是                int t = (int)cmd.ExecuteScalar();这句话有问题?

------解决方案--------------------
用这个:http://msdn.microsoft.com/zh-cn/library/9kcbe65k(v=vs.80).aspx
------解决方案--------------------
报什么错?另外 lalnickname.Text = sdr["nickname"].ToString();还有这是一个while循环,如果你只想第一个,加个break.
------解决方案--------------------
单步调试看有没有取到值。
------解决方案--------------------
if (cmd.ExecuteScalar() != null)
{
   lalnickname.text=cmd.ExecuteScalar().tostring();

}
------解决方案--------------------
http://www.360doc.com/content/12/1124/12/10939365_249921984.shtml
------解决方案--------------------
是因为cmd.ExecuteScalar()取回的是空值,所以报错了,如果找不到记录,那么ExecuteScalar则会返回null
------解决方案--------------------
引用:
我在数据库中有一张表叫做userinfo 表里面有一列叫做 nickname
现在我得到了一个id 想通过这个id在表中查询 这个nickname的值
然后把得到的nickname 赋值给一个一个lalbel
我这么写有错么?
db.Conn.Open();
                string sql = string.Format("select nickname from userinfo where uid ='{0}'", id);
                SqlCommand cmd = new SqlCommand(sql,db.Conn);
                int t = (int)cmd.ExecuteScalar();
                lalnickname.text=t.tostring();


这样写总是报错啊 为什么? 难道是                int t = (int)cmd.ExecuteScalar();这句话有问题?