【问题标题】:ASP.NET MVC post won't sent values to SQL databaseASP.NET MVC 帖子不会将值发送到 SQL 数据库
【发布时间】:2020-11-25 18:26:59
【问题描述】:

我正在尝试创建一个注册页面,但我无法将值发送到我的数据库。 我没有收到任何错误,所以我无法弄清楚出了什么问题。

型号:

public class AddNewUser
{
    public string username { get; set; }
    public string usermail { get; set; }
    public string usertype { get; set; }
    public string userpassword { get; set; }
    public bool userterms { get; set; }
}

控制器:

[HttpPost]
public ActionResult Opretbruger(AddNewUser user)
{
        if (ModelState.IsValid)
        {
            string username = user.username;
            string usermail = user.usermail;
            string usertype = user.usertype;
            string userpassword = user.userpassword;
            bool userterms = user.userterms;

            string usersub = "Test";

            DateTime createdate = DateTime.Now;

            SqlConnection conn = new SqlConnection(Helpers.ConnectionString);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;

            cmd.CommandText =
                   "INSERT INTO users (user_name, user_email, user_type, user_password, user_subscription, user_terms, user_createdate) VALUES (@username, @usermail, @usertype, @userpassword, @userterms, @usersub, @createdate)";
            cmd.Parameters.Add("@username", SqlDbType.NVarChar).Value = username;
            cmd.Parameters.Add("@usermail", SqlDbType.NVarChar).Value = usermail;
            cmd.Parameters.Add("@usertype", SqlDbType.NVarChar).Value = usertype;
            cmd.Parameters.Add("@userpassword", SqlDbType.NVarChar).Value = userpassword;
            cmd.Parameters.Add("@userterms", SqlDbType.NVarChar).Value = userterms;
            cmd.Parameters.Add("@usersub", SqlDbType.NVarChar).Value = usersub;
            cmd.Parameters.Add("@createdate", SqlDbType.DateTime).Value = createdate;

            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();
        }

        return View();
}

【问题讨论】:

    标签: c# asp.net-mvc http-post


    【解决方案1】:

    尝试将其包装到 try-catch 块中并在控制台中显示错误(也许它会对您有所帮助)。无论如何,IMO 最好是实体框架来对数据库做任何事情(使用 ORM)。

    【讨论】:

      【解决方案2】:

      这可能无法解决,但您可以更正插入数据的顺序并尝试:

      “插入用户(user_name、user_email、user_type、user_password、user_subscription、user_terms、user_createdate)值(@username、@usermail、@usertype、@userpassword、@usersub、@userterms、@createdate)”;

      作为最佳实践,请尝试捕获异常,这将帮助您了解确切的问题。

      【讨论】:

        【解决方案3】:

        可能你必须改变:

         cmd.Parameters.Add("@userterms", SqlDbType.NVarChar).Value = userterms;
        

        收件人:

           sqlCommand.Parameters.Add("@userterms", SqlDbType.Bit).Value = userterms;
        

        【讨论】:

          猜你喜欢
          • 2020-09-26
          • 1970-01-01
          • 2014-10-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-14
          相关资源
          最近更新 更多