2017-03-02 60 views
0

数据这是我UserRegister.cs车型Asp.net当插入数据库没有发生任何插入

public class UserRegister 
    { 
     public int Id { get; set; } 
     [Required(ErrorMessage = "Please provide username", AllowEmptyStrings = false)] 
     public string Username { get; set; } 
     [Required(ErrorMessage = "Please provide Password", AllowEmptyStrings = false)] 
     [DataType(System.ComponentModel.DataAnnotations.DataType.Password)] 
     [StringLength(50, MinimumLength = 8, ErrorMessage = "Password must be 8 char long.")] 
     public string Password { get; set; } 
     [Compare("Password", ErrorMessage = "Confirm password dose not match.")] 
     [DataType(System.ComponentModel.DataAnnotations.DataType.Password)] 
     public string ConfirmPassword { get; set; } 
     [Required(ErrorMessage = "Please provide full name", AllowEmptyStrings = false)] 
     public string FullName { get; set; } 

     [RegularExpression(@"^([0-9a-zA-Z]([\+\-_\.][0-9a-zA-Z]+)*)[email protected](([0-9a-zA-Z][-\w]*[0-9a-zA-Z]*\.)+[a-zA-Z0-9]{2,3})$", 
      ErrorMessage = "Please provide valid email id")] 
     public string Email { get; set; } 
    } 

这是我Customercontroller,我执行要插入数据库到它的功能。

public ActionResult Customer() 
     { 
      return View(new UserRegister()); 
     } 

     [HttpPost] 
     public ActionResult Customer(UserRegister model1) 
     { 
      if (ModelState.IsValid) 
      { 
       SqlConnection cnn; 
       string connectionString = ConfigurationManager.ConnectionStrings 
              ["DefaultConnection"].ConnectionString; 
       cnn = new SqlConnection(connectionString); 
       try 
      { 
       cnn.Open(); 
       Response.Write("Connection Made"); 




       string query = "INSERT INTO Customer(Username,Password,Email) VALUES('" + model1.Username + "','" + model1.Password + "','" + model1.Email + "')"; 
       SqlCommand command = new SqlCommand(query, cnn); 
       command.ExecuteNonQuery(); 

      } 

      catch 
      { 
       Response.Write("error"); 

      } 

      finally 
      { 
       cnn.Close(); 

      } 

       Response.Write("Insert succesful"); 

       ViewBag.Message = "Customer Page"; 
      } 
       return View(model1); 

     } 

的事情是,当我插入到数据库中没有发生,则不插入数据。我想问问是否有一些我需要添加到我的useregister.cs模型中,因为我阅读了一些指导我关于实体框架的信息,需要添加一些数据类型的东西。因为我更加迷惑,因为我对asp.net很陌生。真的希望你们能帮助我。

HTML代码

@model DDAC_Assignment_jason.Models.UserRegister 

@{ 
    ViewBag.Title = "Customer"; 
} 

<h2>Customer</h2> 

@using (Html.BeginForm()) 
{ 
    @Html.ValidationSummary(true) 
    <fieldset> 
     <legend>User</legend> 
     @Html.AntiForgeryToken() 
     @if (ViewBag.Message != null) 
     { 
      <div style="border:solid 1px green"> 
       @ViewBag.Message 
      </div> 
     } 


     <div class="editor-label"> 
      @Html.LabelFor(model => model.Email) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Email) 
      @Html.ValidationMessageFor(model => model.Email) 
     </div> 
     <div class="editor-label"> 
      @Html.LabelFor(model => model.Username) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Username) 
      @Html.ValidationMessageFor(model => model.Username) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.Password) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Password) 
      @Html.ValidationMessageFor(model => model.Password) 
     </div> 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.ConfirmPassword) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.ConfirmPassword) 
      @Html.ValidationMessageFor(model => model.ConfirmPassword) 
     </div> 
     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 
} 

<div> 
    @Html.ActionLink("Back to List", "Index") 
</div> 

The register part of my website

+6

把一个破发点,并查看是否得到执行代码。更重要的是。 **阅读[Sql注入](https://en.wikipedia.org/wiki/SQL_injection)**您的查询很容易sql注入。 – Habib

+0

如何放置断点? – user3711175

+0

菜单>调试>新断点 –

回答

0

你可以写try catch块,并把一个破发点中的渔获物。

try 
{ 
    cnn.Open(); 
    Response.Write("Connection Made"); 

    string query = "INSERT INTO Customer(Username,Password,Email) VALUES('" + model1.Username + "','" + model1.Password + "','" + model1.Email + "')"; 
    SqlCommand command = new SqlCommand(query, cnn); 
    command.ExecuteNonQuery(); 
} 
catch 
{ //break point 
    //log 
} 
finally 
{ 
    cnn.Close(); 
} 

,并将HTML会,

@using (Html.BeginForm("ActionName","ControllerName", FormMethod.Post)) 
+0

当我把catch.write(“错误”)赶上也没有任何事情发生什么都没有显示在我的网页上仍然像上次一样 – user3711175

+0

底部你可以看到我的图像它什么也没有显示,当我按下创建 – user3711175

+0

是创建按钮发布你的数据?你能分享你的HTML代码吗? –