C# 用SqlDataReader 怎么读不出数据。。高手帮看看。。。。。。。

dbscon.Open();
string yStr = "select YUER from vip where code='" + vipinfo.send_vipid + "'"; //余额
SqlCommand ycmd = new SqlCommand(yStr, dbscon);
SqlDataReader ydr = ycmd.ExecuteReader();
if (ydr.Read())
{
this.yulb.Text = ydr[0] as string;
}
ydr.Close();
以上代码实在查不出有什么问题。其中SQL语句试过在数据库中执行是有数据返回的。

第1个回答  2013-07-22
你别着急,调试一下看看此处vipinfo.send_vipid有没有值。将yStr 在数据库中执行一下;然后ydr[0] as string改为ydr[0].ToString()试试追问

vipinfo.send_vipid里有值了,这个在调试的时候看过,组合起来的yStr变量没问题,我用里面的串在数据库里执行过有正确的返回值。改为.ToString()也不行。试过。

追答

怪异的问题~你可以代码发过来吗,我看一下
[email protected]

追问

谢谢兄弟了,刚试了下ExecuteScala在这方面可以拿到值。。我就采纳楼下的兄弟的了,一会我发代码给你如果有兴趣你就研究一下了。。。^_^

第2个回答  2013-07-22
试下你的sql语句在ssms中执行下,看下时候语句有问题,如果只取得当条数据,试试用ExecuteScalar本回答被提问者采纳
第3个回答  2013-07-22
this.yulb.Text = ydr["YUER"].ToString() 试试追问

不行。。

第4个回答  2013-07-22
不能用AS,用tostring()追问

试过了。不行

第5个回答  2013-07-22
this.yulb.Text 获得值以后再Refresh看看?追问

没值。这个也在调试的时候看过了。。。Read根本什么都没读到。

追答            //改成下面的代码试试
            dbscon.Open();
            string yStr = "select YUER from vip where code='" + vipinfo.send_vipid + "'";                //余额
            SqlCommand ycmd = new SqlCommand(yStr, dbscon);
            this.yulb.Text = ycmd.ExecuteScalar() as string ;
            ydr.Close();

相似回答