.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中第一次调用都是正常,但是第二次调用就一直报错,不知道有没有大神能解释下为何
展开
 我来答
wxy35857182
推荐于2017-11-26
知道答主
回答量:10
采纳率:0%
帮助的人:10.7万
展开全部
Lz!可能是connection的原因! 你共用的connection吗!如果共用的一个connection就会第一次没错!第二次就会报错!你可以这样做
using(sqlconnnecton conn = new sqlconnection())
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
丶没好名字
2013-09-16 · TA获得超过143个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:230万
展开全部
if完之后加上reader.close();

当然第一次正常,第二次报错.
第一次reader为关闭状态,你开启,没问题.
第二次已经为开启状态,你再开启,当然出错.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蔷薇夜天涯
2013-09-16 · TA获得超过509个赞
知道小有建树答主
回答量:586
采纳率:75%
帮助的人:499万
展开全部
string dbpassword = reader.GetString(reader.GetOrdinal("password"));

这段语句后加
reader.close()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式