.NET错误,已有打开的与此命令相关联的 DataReader,必须首先将它关闭
publicstringselectuser(stringAccount,stringpassword){stringsql="select*fromLDuserwher...
public string selectuser(string Account, string password)
{
string sql = "select * from LDuser where Account='" + Account + "'";
SqlCommand cmd = new SqlCommand(sql, sqlCon);
//将查询到的数据保存在reader这个变量里
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
//如果reader.Read()的结果不为空, 则说明输入的用户名存在
if (reader.Read())
{
/*从数据库里查询出和用户相对应的PassWorld的值
*reader.GetOrdinal("PassWord")的作用是得到PassWord的为这行数据中的第几列,返回回值是int
*reader.GetString()的作用是得到第几列的值,返回类型为String.
*/
string dbpassword = reader.GetString(reader.GetOrdinal("password"));
//比较用户输入的密码与从数据库中查询到的密码是否一至
if (password == dbpassword)
{
//如果相等,就登录成功
return "登录成功!";
}
else
{
//如果不相等,说明密码不对
return "输入的密码有误!";
}
}
else
{
//说明输入的用户名不存在
return "输入的用户名不存在!";
}
}
代码如上,基于.NET的webservice
为什么错知道,但是不会改,求指导,如何关闭连接和reader
谢谢123楼这么快的回答,但是这些办法我都试过了不行的,在webservice中第一次调用都是正常,但是第二次调用就一直报错,不知道有没有大神能解释下为何 展开
{
string sql = "select * from LDuser where Account='" + Account + "'";
SqlCommand cmd = new SqlCommand(sql, sqlCon);
//将查询到的数据保存在reader这个变量里
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
//如果reader.Read()的结果不为空, 则说明输入的用户名存在
if (reader.Read())
{
/*从数据库里查询出和用户相对应的PassWorld的值
*reader.GetOrdinal("PassWord")的作用是得到PassWord的为这行数据中的第几列,返回回值是int
*reader.GetString()的作用是得到第几列的值,返回类型为String.
*/
string dbpassword = reader.GetString(reader.GetOrdinal("password"));
//比较用户输入的密码与从数据库中查询到的密码是否一至
if (password == dbpassword)
{
//如果相等,就登录成功
return "登录成功!";
}
else
{
//如果不相等,说明密码不对
return "输入的密码有误!";
}
}
else
{
//说明输入的用户名不存在
return "输入的用户名不存在!";
}
}
代码如上,基于.NET的webservice
为什么错知道,但是不会改,求指导,如何关闭连接和reader
谢谢123楼这么快的回答,但是这些办法我都试过了不行的,在webservice中第一次调用都是正常,但是第二次调用就一直报错,不知道有没有大神能解释下为何 展开
展开全部
Lz!可能是connection的原因! 你共用的connection吗!如果共用的一个connection就会第一次没错!第二次就会报错!你可以这样做
using(sqlconnnecton conn = new sqlconnection())
using(sqlconnnecton conn = new sqlconnection())
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
展开全部
if完之后加上reader.close();
当然第一次正常,第二次报错.
第一次reader为关闭状态,你开启,没问题.
第二次已经为开启状态,你再开启,当然出错.
当然第一次正常,第二次报错.
第一次reader为关闭状态,你开启,没问题.
第二次已经为开启状态,你再开启,当然出错.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string dbpassword = reader.GetString(reader.GetOrdinal("password"));
这段语句后加
reader.close()
这段语句后加
reader.close()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询