在asp.net,c#,ms-access数据库中更改密码

时间:2013-04-17 17:39:31

标签: asp.net c#-4.0 ms-access-2007

我在asp.net,c#,MS-access数据库中设计了一个更改密码屏幕  我有4个字段 用户身份, 旧密码, 新密码 确认密码

现在我没有得到结果返回0我更新了我的代码

我的代码如下

      try

      {

      OleDbConnection myCon = new  OleDbConnection(ConfigurationManager.ConnectionStrings["vhgroupconnection"]
       .ConnectionString);
        myCon.Open();

        string userid = txtuserid.Text;
        string oldpass = txtoldpass.Text;
        string newPass = txtnewpass.Text;
        string conPass = txtconfirmpass.Text;

        string q = "select user_id,passwd from register where user_id = @userid and       passwd = @oldpass";

        OleDbCommand cmd = new OleDbCommand(q, myCon);



        cmd.Parameters.AddWithValue("@userid", txtuserid.Text);

        cmd.Parameters.AddWithValue("@oldpass", txtoldpass.Text);

      OleDbDataReader re = cmd.ExecuteReader();
        re.Read();

        if (re["user_id"].ToString() != String.Empty && re["passwd"].ToString() != String.Empty)
        {
            if (newPass.Trim() != conPass.Trim())
            {
                lblmsg.Text = "New Password and old password does not match";

            }
            else
            {
               q = "UPDATE register SET  passwd = @newPass WHERE user_id =@userid";
                cmd = new OleDbCommand(q, myCon);
                cmd.Parameters.AddWithValue("@userid", txtuserid.Text);
                cmd.Parameters.AddWithValue("@newPasss", txtnewpass.Text);



                int count = cmd.ExecuteNonQuery();

                if (count > 0)
                {
                    lblmsg.Text = "Password changed successfully";
                }
                else
                {
                    lblmsg.Text = "password not changed";
                }
            }
        }
    }
    catch(Exception ex)
    {
        throw ex;
    }

plz帮我解决错误

1 个答案:

答案 0 :(得分:2)

您收到错误No constructor is defined,因为您无法直接实例化此对象。正如MSDN所述:

  

要创建OleDbDataReader,必须调用ExecuteReader方法   OleDbCommand对象,而不是直接使用构造函数。

基本上,在创建连接并指定查询后,您会执行以下操作:

OleDbDataReader re = cmd.ExecuteReader();