这里有一个方法(书上的),可是调用的时候出错,提示:不能将 int 隐示转换成 SqlDataReader ,方法和调用如下。
public static int Login(string Username,string Password)
{
int revalue=0;
SqlDataReader sqldr=null;
........
cmd.Connection.Close(); return revalue;
}
调用
SqlDataReader sdr= myData.Login (UserCode,UserPwd);
这里就会出错。
要怎么处理才行处理才能进行调用?
public static int Login(string Username,string Password)
{
int revalue=0;
SqlDataReader sqldr=null;
........
cmd.Connection.Close(); return revalue;
}
调用
SqlDataReader sdr= myData.Login (UserCode,UserPwd);
这里就会出错。
要怎么处理才行处理才能进行调用?
{
int revalue=0;
SqlDataReader sqldr=null;
........
cmd.Connection.Close(); return sqldr;
}
public static int Login(string Username,string Password)
{
int revalue=0;
SqlDataReader sqldr=null;
//生成查询字符串
string sqlstr="select top 1 UserID from DepartMent where UserID='"+Username+" ' and Pswd='"+Password+" '";
SqlCommand cmd=new SqlCommand(sqlstr,cnn);
//检查数据库的壮态,如果是关闭则打开
if(cmd.Connection.State.ToString()=="Closed")
cmd.Connection.Open();
try
{
sqldr=cmd.ExecuteReader();
//读出查询结果,并判断是否为这用户
sqldr.Read();
if(sqldr["UserID"].ToString()==Username)
{
revalue=1;//是该用户,返回1,否则为0; }
else
{
revalue=0;
}
}
catch
{
revalue=0;//没有可读取的行,返回0;
}
cmd.Connection.Close(); return revalue;//1表示这用户存在,0表示不存在
}调用
SqlDataReader sdr= myData.Login (UserCode,UserPwd);
if(sdr!=null)
{
if(sdr==0)
{
MessageBox.Show("用户和密码不相符");
}
else
{
MessageBox.Show("登录成功");
this.Close();
}
}
sdr.Close();
}
}
改成
int sdr= myData.Login (UserCode,UserPwd);
myData.Login()返回的是int值
不能赋值给一个对象SqlDataReader