读取UserInfo表中的一个Admin值 来判断是非管理员帐户;【下面是判断Admin是否为"Yes"的一个函数】,,,,"U"传递的是一个帐户名;
我的数据库有3个列:UName,Upwd,Admin;
public bool CheckAdm(string U)
{
string
SqlConnection con = new SqlConnection();
con.ConnectionString = StrConnection;
con.Open(); DataSet Ds = new DataSet();
string QueueS="select UName from UserInfo where UName='"+U +"'";
SqlCommand Qcmd = new SqlCommand(QueueS, con);
SqlDataReader dr = Qcmd.ExecuteReader();
if (dr.GetString (0)=="yes")
{
return true;
}
else
return false;
}运行后错误是“在没有任何数据时进行无效的读取尝试”可我的USERINFO表中有4条数据;
我在 SqlDataReader dr = Qcmd.ExecuteReader(); 后面加一条string GStr = dr.GetString(0);
MessageBox.Show(GStr ); 出现的是同样的错误
而如果从 SqlDataReader dr = Qcmd.ExecuteReader();
后面改一下
if (dr.Read ())
{
string GStr = dr.GetString(0);
MessageBox.Show(GStr );
return true;
}
else
return false;MessageBox.Show(GStr );弹出的却是传进这个函数的参数“U”。这是为什么?
还有GetString(0)这个0代表的是什么是。除了用SqlDataReader 将数据读出来再传给变量外,还可以用别的方法吗?
----------------------------------------------------------------------------------------------
我才学ADO好多不懂希望高手指点
我的数据库有3个列:UName,Upwd,Admin;
public bool CheckAdm(string U)
{
string
SqlConnection con = new SqlConnection();
con.ConnectionString = StrConnection;
con.Open(); DataSet Ds = new DataSet();
string QueueS="select UName from UserInfo where UName='"+U +"'";
SqlCommand Qcmd = new SqlCommand(QueueS, con);
SqlDataReader dr = Qcmd.ExecuteReader();
if (dr.GetString (0)=="yes")
{
return true;
}
else
return false;
}运行后错误是“在没有任何数据时进行无效的读取尝试”可我的USERINFO表中有4条数据;
我在 SqlDataReader dr = Qcmd.ExecuteReader(); 后面加一条string GStr = dr.GetString(0);
MessageBox.Show(GStr ); 出现的是同样的错误
而如果从 SqlDataReader dr = Qcmd.ExecuteReader();
后面改一下
if (dr.Read ())
{
string GStr = dr.GetString(0);
MessageBox.Show(GStr );
return true;
}
else
return false;MessageBox.Show(GStr );弹出的却是传进这个函数的参数“U”。这是为什么?
还有GetString(0)这个0代表的是什么是。除了用SqlDataReader 将数据读出来再传给变量外,还可以用别的方法吗?
----------------------------------------------------------------------------------------------
我才学ADO好多不懂希望高手指点
才是从返回的dr中定位第一行的数据
在访问dr[0].ToString()就行了
{
dr["UName"].toString();
}
这样就读出了UName字段了
{
string
SqlConnection con = new SqlConnection();
con.ConnectionString = StrConnection;
con.Open(); DataSet Ds = new DataSet();
string QueueS="select UName from UserInfo where UName='"+U +"'";
SqlCommand Qcmd = new SqlCommand(QueueS, con);
SqlDataReader dr = Qcmd.ExecuteReader();
//你的错误在这里没有写dr.Read();
dr.Read();
if (dr.GetString (0)=="yes")
{
return true;
}
else
return false;
}
感谢大家的帮忙…………