我已经查看了关于这个主题的类似问题,发现没有一个可以与我自己的问题进行足够密切的比较.有许多不同的方法可以触发相同的异常.
我是C#的新手,正在开发一个简单的登录表单,它将用户信息存储在数据库中,然后根据请求检索它.
在调试模式下,抛出异常的行是:
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
以前的运行没有抛出这个错误,只有当我添加一个guid或者开始尝试哈希我的密码时.
更多信息:'必须声明标量变量"@Userguid".'
我看了一遍,又一次得到了不同的答案,例如有些人认为它与连接字符串有关,而且对于他们的记者来说很可能是 - 但对我来说,我之前没有遇到任何麻烦,所以似乎不太可能.
这是我的按钮点击事件,抛出异常:
private void Button_Click(object sender, RoutedEventArgs e)
{
CheckUserInput();
CheckPassInput();
//Can we create the account?
if (canProceedUserPass == true && canProceedPass == true)
{
//Add username and password to my SqlDb table 'Users'.
Username = NewUsername.Text;
Password = NewPassword.Password.ToString();
Guid userGuid = System.Guid.NewGuid();
string hashedPassword = Security.HashSHA1(Password + userGuid.ToString());
SqlConnection con = new SqlConnection(connectionstring);
using (SqlCommand cmd = new SqlCommand("INSERT INTO [Users] VALUES (@Username, @Password, @Userguid)", con))
{
cmd.Parameters.AddWithValue("@username", Username);
//HashSHA1 …Run Code Online (Sandbox Code Playgroud)