如何在更改密码中使用更新查询

时间:2019-01-29 04:01:12

标签: c#

我的问题是,当我尝试更改密码时,出现此错误:

  

没有为一个或多个参数提供值

我的代码:

gcloud compute scp --zone us-central1-a C:\Users\root\Downloads\***.sql ***-sandbox:~/var/www/html

1 个答案:

答案 0 :(得分:1)

我同意您在帖子中提供的反馈意见,密码绝对不应为纯文本,并且您不应基于密码列上的匹配项来更新密码。

但是为了帮助您解决直接的问题,您已经在SQL文本中声明了一个参数,但没有将参数提供给OleDbCommand

尝试一下:

   connectionn.Open();
   OleDbCommand command = new OleDbCommand();
   command.Connection = connectionn;
   string query = "update LOGIN set pass=@Password WHERE UserId=@UserId";
   command.CommandText = query;

   // Some form of hashing should definitely be done here! Should NOT be plain text
   command.AddWithValue("@Password", NPassword.Text); 
   // Not provided in your question but should use this parameter to update the proper column and not try to match on a password field
   command.AddWithValue("@UserId", userId); 
   command.ExecuteNonQuery();
   MessageBox.Show("Password Changed");
   connectionn.Close();
}
catch (Exception ex)
{
   MessageBox.Show("Error, fill the fields required" + ex);
   connectionn.Close();
}