刚才小弟经一大哥指点,解决了SQL语句的问题,现在紧接着出现另一问题
看小弟代码:
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;";
string DataBase = Server.MapPath("db/db.mdb");
strConnection += "Data Source=" + DataBase;//赋值数据库路径给strConnection变量string strSQL1 = "SELECT * FROM login where username='" + Originame.Text + "'";
string strSQL2="UPDATE login SET [password]='"+Newpw.Text+"' WHERE username='"+Originame.Text + "'";//定义2个SQL语句。OleDbConnection objConnection = new OleDbConnection(strConnection);OleDbCommand objCommand =new OleDbCommand(strSQL1, objConnection);
OleDbCommand myCommand = new OleDbCommand (strSQL2,objConnection); OleDbDataReader objDataReader ;objConnection.Open();
objDataReader = objCommand.ExecuteReader();//下面的if语句是首先验证表中username字段有无 username='" + Originame.Text + "' 的行。if (objDataReader.Read()==false)
{
error.Text = "用户名输入有误!"; //表示没有相应的行
return;
}
else if(objDataReader.GetString(2)!=Originpw.Text)
{
error.Text="密码验证错误!"; //表示有相应的行,但是密码验证不正确
return;
}
else
{
myCommand.ExecuteNonQuery(); //全部验证通过,更新数据。
objConnection.Close();
}接着就会出现:已有打开的与此连接相关联的 DataReader,必须首先将它关闭。
打红的行为: myCommand.ExecuteNonQuery();请高手指点,第一个解决的 20分全给!谢谢~~~~~
看小弟代码:
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;";
string DataBase = Server.MapPath("db/db.mdb");
strConnection += "Data Source=" + DataBase;//赋值数据库路径给strConnection变量string strSQL1 = "SELECT * FROM login where username='" + Originame.Text + "'";
string strSQL2="UPDATE login SET [password]='"+Newpw.Text+"' WHERE username='"+Originame.Text + "'";//定义2个SQL语句。OleDbConnection objConnection = new OleDbConnection(strConnection);OleDbCommand objCommand =new OleDbCommand(strSQL1, objConnection);
OleDbCommand myCommand = new OleDbCommand (strSQL2,objConnection); OleDbDataReader objDataReader ;objConnection.Open();
objDataReader = objCommand.ExecuteReader();//下面的if语句是首先验证表中username字段有无 username='" + Originame.Text + "' 的行。if (objDataReader.Read()==false)
{
error.Text = "用户名输入有误!"; //表示没有相应的行
return;
}
else if(objDataReader.GetString(2)!=Originpw.Text)
{
error.Text="密码验证错误!"; //表示有相应的行,但是密码验证不正确
return;
}
else
{
myCommand.ExecuteNonQuery(); //全部验证通过,更新数据。
objConnection.Close();
}接着就会出现:已有打开的与此连接相关联的 DataReader,必须首先将它关闭。
打红的行为: myCommand.ExecuteNonQuery();请高手指点,第一个解决的 20分全给!谢谢~~~~~
解决方案 »
- C# 带小数点儿的字符串(如:"100.5"),如何只取整数部分
- 如何在Form1中实现单击新建按钮后弹出Form2来采集信息,这时候Form1不可访问
- 当困惑:委托,事件,多线程,线程同步混在一起以后,程序变成什么样子了?
- 在delphi的DLL写了一个回调函数,我在C#中应该如何用呢?
- 如何对vs2005 中的WinForm项目制作安装程序?
- 老问题了,关于下载大文件500MB以上
- 怎样才能知道一条记录是DataView中的第一条记录或最后一条记录??
- 200分求《C#高级编程第2版》的有效下载地址
- 数据库表的操作
- 基于图像的目标识别
- 请教高手:为什么我在用DataGrid控件时,找不到DataBind()方法?
- 就像OpenFileDialog,选择目录的对话框类是什么?
因为objDataReader.Open();后objConnection已经被使用了,不能再用
{
error.Text = "用户名输入有误!"; //表示没有相应的行
objDataReader.Close();
return;
}
else if(objDataReader.GetString(2)!=Originpw.Text)
{
error.Text="密码验证错误!"; //表示有相应的行,但是密码验证不正确 return;
}
{
error.Text="密码验证错误!"; //表示有相应的行,但是密码验证不正确
objDataReader
.Close()。
return;
}