ExecuteNonQuery 修改密码老错

哎算了 2020-03-04 05:17:48
using System; 
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using MyMd5;//引进md5的类

public partial class loginedit:BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
T_usn.Text+=Session["UserName"];
}


protected void T_pswClick(object sender, EventArgs e)
{
if (Page.IsValid)
{
string strconn =ConfigurationManager.AppSettings["SQLConnString"].ToString() + Server.MapPath(ConfigurationManager.AppSettings["dbPath"]) + ";";
OleDbConnection conn = new OleDbConnection(strconn);
string Pwd1 = "";
string Pwd2 = "";
Pwd1 = MyMd5.MyFM.GetMD5Hash(T_psw1.Text.Trim(),16);
Pwd2 = MyMd5.MyFM.GetMD5Hash(T_psw2.Text.Trim(),16);

string Sql1;
string Sql2;

Sql1 = "select count(*) from [admin] where aid='" + Convert.ToInt32(Request.QueryString["xid"]) + "' and password='" + Pwd1 + "'";
OleDbCommand cmd1 = new OleDbCommand(Sql1, conn);
conn.Open();

int ret1 = cmd1.ExecuteNonQuery();//判断数据库是否为空
if (ret1 <= 0)
{
Response.Write("<script> alert(\"修改失败!旧密码错误!\")</script>");
}
else
{

Sql2 = "update from [admin] set password='" + Pwd2 + "' where aid='" + Convert.ToInt32(Request.QueryString["xid"]) + "'";
OleDbCommand cmd2 = new OleDbCommand(Sql2, conn);
conn.Open();
int ret2 = cmd2.ExecuteNonQuery();//判断数据库是否为空
if (ret2 > 0)
{
Session.Clear();
Session.Abandon();
Response.Write("<script> alert(\"修改成功!\")</script>");
Response.Redirect("Login.aspx");
}
else
{
Response.Write("<script> alert(\"修改失败!\")</script>");
}

}

conn.Close();

}
}
}



提示下面错误。

异常详细信息: System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配。

源错误:


行 37: conn.Open();
行 38:
行 39: int ret1 = cmd1.ExecuteNonQuery();//判断数据库是否为空
行 40: if (ret1 <= 0)
行 41: {
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
姎楹 2020-03-05
  • 打赏
  • 举报
回复
dei ,楼上讲的dei
  • 打赏
  • 举报
回复
select count(*)这个语句,应该使用cmd1.ExecuteScalar();表示执行查询并返回查询所返回的结果集中第一行的第一列。
哎算了 2020-03-04
  • 打赏
  • 举报
回复
引用 1 楼 姎楹 的回复:
你先int ret1=0;在赋值看看可能是cmd1.ExecuteNonQuery()返回的“”
using System; 
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using MyMd5;//引进md5的类

public partial class loginedit:BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
T_usn.Text+=Session["UserName"];
}


protected void T_pswClick(object sender, EventArgs e)
{
if (Page.IsValid)
{
string strconn =ConfigurationManager.AppSettings["SQLConnString"].ToString() + Server.MapPath(ConfigurationManager.AppSettings["dbPath"]) + ";";
OleDbConnection conn = new OleDbConnection(strconn);
string Pwd1 = "";
string Pwd2 = "";
Pwd1 = MyMd5.MyFM.GetMD5Hash(T_psw1.Text.Trim(),16);
Pwd2 = MyMd5.MyFM.GetMD5Hash(T_psw2.Text.Trim(),16);

string Sql1;
string Sql2;

Sql1 = "select count(*) from [admin] where aid='" + Convert.ToInt32(Request.QueryString["xid"]) + "' and password='" + Pwd1 + "'";
OleDbCommand cmd1 = new OleDbCommand(Sql1, conn);
conn.Open();
int ret1=0;
ret1 = cmd1.ExecuteNonQuery();//判断数据库是否为空
if (ret1 <= 0)
{
Response.Write("<script> alert(\"修改失败!旧密码错误!\")</script>");
}
else
{

Sql2 = "update from [admin] set password='" + Pwd2 + "' where aid='" + Convert.ToInt32(Request.QueryString["xid"]) + "'";
OleDbCommand cmd2 = new OleDbCommand(Sql2, conn);
conn.Open();
int ret2=0;
ret2 = cmd2.ExecuteNonQuery();//判断数据库是否为空
if (ret2 > 0)
{
Session.Clear();
Session.Abandon();
Response.Write("<script> alert(\"修改成功!\")</script>");
Response.Redirect("Login.aspx");
}
else
{
Response.Write("<script> alert(\"修改失败!\")</script>");
}

}

conn.Close();

}
}
}


还是不行,提示错误。

异常详细信息: System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配。

源错误:


行 37: conn.Open();
行 38: int ret1=0;
行 39: ret1 = cmd1.ExecuteNonQuery();//判断数据库是否为空
行 40: if (ret1 <= 0)
行 41: {
姎楹 2020-03-04
  • 打赏
  • 举报
回复
你先int ret1=0;在赋值看看可能是cmd1.ExecuteNonQuery()返回的“”

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧