【问题标题】:{"The parameterized query '(@Usr_Name nvarchar(4000).... nv' expects the parameter '@Usr_Name', which was not supplied."}{"参数化查询 '(@Usr_Name nvarchar(4000).... nv' 需要参数 '@Usr_Name',但未提供。"}
【发布时间】:2017-07-13 08:35:20
【问题描述】:

我在这里遇到了这个异常,这是我在 db 中创建用户详细信息的插入代码。我正在尝试最终解决但无法这样做

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");
}

【问题讨论】:

标签: c# asp.net-mvc


【解决方案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");
 }

【讨论】:

  • 写下你的 SQL 数据库的原始字段名称 例如:字段 1 --> 你的实际数据库字段名称
  • 如果插入表格并匹配所有列的顺序和出现,则不需要字段名称
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多