我得到這個異常這裏是我插入代碼來創建用戶。具體到數據庫我想在我的最終解決,但未能如願{「參數化查詢'(@Usr_Name nvarchar(4000).... nv'期望參數'@Usr_Name',它沒有提供。」}
public ActionResult Create(UserModel usr)
{
con.Open();
string query = "Insert into Tbl_User Values(@Usr_Name,@FirstName,@LastName,@Gender,@Phone,@Address,@Email)";
SqlCommand cmd = new SqlCommand(query, con);
SqlParameter usrname = cmd.Parameters.AddWithValue("@Usr_Name", usr.Usr_Name);
if (usr.Usr_Name == null)
{
usrname.Value = DBNull.Value;
}
SqlParameter fname = cmd.Parameters.AddWithValue("@FirstName", usr.First_Name);
if (usr.First_Name == null)
{
fname.Value = DBNull.Value;
}
cmd.Parameters.AddWithValue("@LastName", usr.Last_Name);
cmd.Parameters.AddWithValue("@Gender", usr.Gender);
cmd.Parameters.AddWithValue("@Phone", usr.Phone);
cmd.Parameters.AddWithValue("@Address", usr.Address);
cmd.Parameters.AddWithValue("@Email", usr.Email);
cmd.ExecuteNonQuery();
return RedirectToAction("Index");
}
不知該值爲''期間* AddWithValue'是混亂它null' *,你可以嘗試'CMD .Parameters.AddWithValue(「@ Usr_Name」,((object)usr.Usr_Name)?? DBNull.Value);'? –
此外,值得一讀解釋什麼可能會出錯:[我們可以停止使用AddWithValue了嗎?] (https://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-alrea dy /) –
類似的問題:https://stackoverflow.com/questions/23448403/the-parameterized-query-expects-the-parameter-units-which-was-not-supp。它包含與Marc建議的類似解決方案。 –