【发布时间】:2017-03-29 08:52:14
【问题描述】:
这是我的代码:
try
{
SqlCommand cmd2 = new SqlCommand(@"INSERT INTO Clienti (parola,nume,prenume,adresa,email,kcal_zilnice) VALUES (@Parola,@Nume,@Prenume,@Adresa,@Email,2000)", conn);
cmd2.Prepare();
cmd2.Parameters.AddWithValue("@Parola", passBox.Text);
cmd2.Parameters.Add("@Nume", SqlDbType.VarChar, 50).Value = nameBox.Text;
cmd2.Parameters.Add("@Prenume", SqlDbType.VarChar, 50).Value = pnameBox.Text;
cmd2.Parameters.Add("@Adresa", SqlDbType.VarChar, 100).Value = adressBox.Text;
cmd2.Parameters.Add("@Email", SqlDbType.VarChar, 100).Value = emailBox.Text;
cmd2.ExecuteNonQuery();
}
catch (SqlException exception)
{
MessageBox.Show("Failed! " + exception.Message);
}
MessageBox.Show("User Created!");
我不知道我在这里做错了什么。我什至试图用'abc'替换@Parola,但它不起作用。我没有收到任何错误消息。每次我得到“用户创建”,但是当我查看数据库时,我得到所有字段 NULL(没有创建记录)。
【问题讨论】:
-
什么异常?
-
如果将其从 SqlException 更改为 just exception 会发生什么......也许还有其他问题。
-
阅读 MSDN 文档(我之前没见过 Prepare()),我认为 .Prepare() 应该在参数之后和 .ExecuteNonQuery() 之前调用。
标签: c# datasource