我想创建用户CNIC帐户。为此,我从tbl_1中选择了一个CNIC并将其存储到tbl_2中。并给用户一个文本框以仅输入密码,因为他的cnic已存在于tbl_2中。并且我使用“如果”条件检查了tbl_2中是否存在他的CNIC,那么他可以输入密码。但是密码没有存储在tbl_2中!

 protected void btnSubmitPassword_Click(object sender, EventArgs e)
    {
        try
        {
            string query = "select * from userlogin";
            cmd.CommandText = query;
            cmd.Connection = con;
            MySqlDataReader msdr = cmd.ExecuteReader();
            while (msdr.Read())
            {
                if (msdr[0].ToString() == txtUserCNIC.Text.ToString())
                {
                    flag = true;
                }
            }

            if (flag == true)
            {

                MySqlCommand mscmd = new MySqlCommand("insert into userlogin(UserPassword)values(@Password)", con);

                mscmd.Parameters.AddWithValue("@Password", txtNewPassword.Text);
                mscmd.ExecuteNonQuery();
            }
        }
        catch (Exception ex)
        {
            Response.Write("" + ex);
        }
  }

最佳答案

如果则table2(userlogin)中存在CNIC别名,则应使用update和non insert ..插入以创建新行..而不是更改现有行,在SQL中,需要UPDATE

update userlogin
set UserPassword =  @Password
where CNIC = the_user_CNIC


并且您不应该在SQL中使用var,因此有注入SQL的风险,为避免这种情况,您应该查看准备好的语句和绑定参数

关于c# - 我已将一个cnic从tbl_1复制到tbl_2,如果tnic中存在cnic,则将密码存储在tbl_2中。但密码未存储在tbl_2中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56090309/

10-09 13:26