2017-07-13 54 views
0

我得到這個異常這裏是我插入代碼來創建用戶。具體到數據庫我想在我的最終解決,但未能如願{「參數化查詢'(@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"); 
} 
+0

不知該值爲''期間* AddWithValue'是混亂它null' *,你可以嘗試'CMD .Parameters.AddWithValue(「@ Usr_Name」,((object)usr.Usr_Name)?? DBNull.Value);'? –

+0

此外,值得一讀解釋什麼可能會出錯:[我們可以停止使用AddWithValue了嗎?] (https://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-alrea dy /) –

+0

類似的問題:https://stackoverflow.com/questions/23448403/the-parameterized-query-expects-the-parameter-units-which-was-not-supp。它包含與Marc建議的類似解決方案。 –

回答

-1
Comment : // Problem in your query. Please write Actual DB Field Name of 
your SQL in below line. 

public ActionResult Create(UserModel usr) 
{ 
    con.Open(); 
    Comment : // Problem in your query. Please write Actual DB Field Name 
        of your SQL in below line. 

string query = "Insert into Tbl_User 
(Field1,Field2,Field3,Field4,Field5,Field6,Field7) 
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"); 
} 
+0

寫入SQL DB的原始字段名稱 例如:字段1 - >您的實際DB字段名稱 – Dilip

+2

如果插入到表中並且匹配所有列的順序和precense,則不需要字段名 – pinkfloydx33

相關問題