日期:2014-05-19  浏览次数:20777 次

读取数据
小弟做了一个登录的界面,数据库中有三个字段,有用户名,密码,角色。用户有不同的角色,下面是一个获得用户角色的函数:
public   bool   GetUserType(string   userName,string   userType)
{
string   strConnect; strConnect= "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source;
oledbConnect=new   OleDbConnection(strConnect);
oledbConnect.Open();
OleDbCommand   command=oledbConnect.CreateCommand();
command.CommandText   = "SELECT   userType   FROM   pw   WHERE   user= ' "+userName   + " ' ";  
OleDbDataReader   reader=command.ExecuteReader();
while(reader.Read())
{
userType=(string)reader.GetValue(0).ToString(); }
reader.Close();
}
}
小弟想读取用户的角色,但是在后面调用这个函数的时候,并没有取得用户的角色.怎么回事??

------解决方案--------------------
pw应该是表名
------解决方案--------------------
command.CommandText 的内容拿到查询分析器内执行一下,有没有结果出来...

SQL语句要首先确保是正确的....
------解决方案--------------------
if(reader.Read())
{
userType=(string)reader.GetValue(0).ToString(); }
------解决方案--------------------
command.CommandText = "SELECT userType FROM 数据表名称 WHERE [user]= ' "+userName + " ' ";
------------------------------------------
user是Access关键字 需要使用[]来处理

------解决方案--------------------
bool类型的函数怎么返回角色名称?,改成静态字符串类型,并且在语句最后加上返回语句
------解决方案--------------------
其他的可以调用吗?
------解决方案--------------------
command.CommandText = "SELECT userType FROM pw WHERE user= ' "+userName + " ' ";

你做的这个登陆极度不安全,不安全的还用来登陆,不白做了??
------解决方案--------------------
command.CommandText = "SELECT userType FROM pw WHERE user= ' "+userName + " ' ";
打个端点,然后把这个语句放到SQL分析器里面执行下,什么都清楚了
------解决方案--------------------
SELECT userType FROM pw WHERE user= ' "+userName + " ' ";
首先,本人觉得你这一句SQL语句写得不是很好,第一,pw应该是表名吧,而不是数据库的名称,第二,user本身就是一个关键字,不应该拿来做字段,所以我觉得还是把名称改一下吧。
------解决方案--------------------
command.CommandText = "SELECT userType FROM 数据表名称 WHERE [user]= ' "+userName + " ' ";
------------------------------------------
user是Access关键字 需要使用[]来处理
------解决方案--------------------
怎么会是BOOL的?还没有返回值,如果一定要做成BOOL的public bool GetUserType(string userName,ref string userType)传进来的USERtype才会变吧
------解决方案--------------------
public string GetUserType(string userName)
{
string userType=null;
string strConnect; strConnect= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source;
oledbConnect=new OleDbConnection(strConnect);
oledbConnect.Open();
OleDbCommand command=oledbConnect.CreateCommand();
command.CommandText = "SELECT userType FROM pw WHERE user= ' "+userName + " ' ";
OleDbDataReader reader=command.ExecuteReader();
while(reader.Read())
{
userType=(string)reader.GetValue(0).ToString(); }