是修改密码的功能,先输入以前的密码和用户名,然后再输入新的密码,进行修改。。
   OleDbConnection my=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data;Source="+Server.MapPath ("message.mdb"));
      OleDbCommand yy=new OleDbCommand ("select count(*) from user_info where (user_id='"+TextBox1.Text+"' and user_pwd='"+TextBox2.Text+"') ",my);
      yy.Connection .Open ();
      int flag=(int)yy.ExecuteScalar ();
      yy.Connection .Close ();
      if(flag<0)
        {Response.Write ("<script language='javascript'>alert('用户名或密码输入错误!!')</script>");}
      else{
OleDbConnection myy=new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath ("message.mdb"));
OleDbCommand xx=new OleDbCommand ("update user_info set user_pwd='"+TextBox3.Text+"' where(user_id='"+TextBox1.Text+"')",myy);
xx.Connection .Open ();
xx.ExecuteNonQuery ();
Response.Write ("<script language='javascript'>alert('修改成功!!!!')</script>");
xx.Connection .Close ();
}就是运行不起来,说是修改成功了,但是没有修改,请高手看一下,我写的意思我先将输入的用户名和密码验证了, int flag=(int)yy.ExecuteScalar ();得出了一个FLAG,如果为零的话,那就是输错了,弹出出错对话。

解决方案 »

  1.   

    代码太累赘了,重复代码太多,OleDbConnection连接的不需要每次都初始化这么麻烦的flag<0,这个条件一旦不成立,你的操作就是一个流程下来了,其实不管有没有错误都会显示到最后弹出成功信息,这算哪门子啊我看C#代码不习惯,累
      

  2.   

    代码都正确执行到了else区域了,但是你的更新操作和操作成功是一个流程下来的,不管更新成功与否,操作成功提示都会有,而你现在是发现数据库没更新问题就出在更新的这个操作上,看你的语句是没问题的,就剩下数据库表结构和你参数是否正确传递的问题了
      

  3.   

    if(flag<0)
    改成
     if(flag<=0)
      

  4.   

    我的数据表是user_info
    有二个字段user_id,user_pwd
    我晕了。
      

  5.   

    OleDbCommand xx=new OleDbCommand ("update user_info set user_pwd='"+TextBox3.Text+"' where(user_id='"+TextBox1.Text+"')",myy);改为:OleDbCommand xx=new OleDbCommand ("update user_info set user_pwd='"+TextBox3.Text+"' where user_id='"+TextBox1.Text+"'",myy);
      

  6.   

    首先检查Flag值是否为Select的结果。可以使用跟踪或Response.Write方法。其次,注释掉xx.ExecuteNonQuery ();后,看看下面的语句Response.Write ("<script language='javascript'>alert('修改成功!!!!')</script>");是否成功。如果成功,则为ExecuteNonQuery问题。或许还有SQL权限问题。查一下SQL日志。祝你好运
      

  7.   

    OleDbCommand yy=new OleDbCommand ("select count(*) from user_info where (user_id='"+TextBox1.Text+"' and user_pwd='"+TextBox2.Text+"') ",my);
    这是有漏洞的做法
    除非之前作过输入检验了------------------------------------
    我的团队:www.51team.com欢迎访问,有志者共谋事,每天都有惊喜,SOHO
      

  8.   

    OleDbCommand yy=new OleDbCommand ("select user_pwd from user_info where (user_id='"+TextBox1.Text+"'') ",my);yy.Connection .Open ();
    string pwd=(string)yy.ExecuteScalar ();
    if(pwd == TextBox2.Text)
    {
      ........
    }------------------------------------
    我的团队:www.51team.com欢迎访问,有志者共谋事,每天都有惊喜,SOHO