我想创建用户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/