读书人

啦啦啦一路弱弱得小题求解答啦

发布时间: 2013-12-02 12:00:40 作者: rapoo

啦啦啦一道弱弱得小题求解答啦
我在数据库中有一张表叫做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();这句话有问题?

nickname,我才这个应该不是数字吧.
你把
int t = (int)cmd.ExecuteScalar();
lalnickname.text=t.tostring();
这两句改成: lalnickname.Text = cmd.ExecuteScalar().ToString();就行了

即使程序通了,也还应该加上非空的判断,如:7楼
[解决办法]
lalnickname.Text = sdr[0].ToString();你看看你这里获取的是不是id你要获取名字的值,你可以把你命名的列名 sdr["列名"].ToString();这样获取;

读书人网 >C#

热点推荐