Я хочу, чтобы пользователь вводил все данные, которые отображаются (столбцы из базы данных), заполнять их и отправлять. Но я не могу заставить свой код работать, что я сделал неправильно здесь? Я получаю ошибку:Создайте запись в базе данных SQL Server с помощью HTML-помощника MVC
System.Data.SqlClient.SqlException: Incorrect syntax near 'Contact'.
Модель:
namespace Project.Models
{
public class Contact
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public int Phone { get; set; }
public int CompanyID { get; set; }
}
}
Вид:
@model Project.Contact
<h2>Create Contact</h2>
<table>
<tr>
<th>First name</th>
<th>Last name</th>
<th>Email</th>
<th>Phone</th>
</tr>
<tr>
<td>@Html.TextBoxFor(m => m.FirstName)</td>
<td>@Html.TextBoxFor(m => m.LastName)</td>
<td>@Html.TextBoxFor(m => m.Email)</td>
<td>@Html.TextBoxFor(m => m.Phone)</td>
</tr>
@Html.HiddenFor(m => m.Id)
@Html.HiddenFor(m => m.CompanyID)
</table>
<br />
@using (Html.BeginForm())
{
<input type="button" name="button" class="button1" value="Create" />
}
Контроллер:
using Project.Models;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Web.Mvc;
namespace Project.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Create(List<Contact> model)
{
string query = "INSERT INTO Contact";
using (var connection = new SqlConnection(@"Data Source=.\SQLExpress;Initial Catalog=Sublime;Integrated Security=True"))
{
using (var command = new SqlCommand(query, connection))
{
connection.Open();
using (var dr = command.ExecuteReader())
{
if (dr.HasRows)
{
while (dr.Read())
{
var contact = new Contact();
contact.Id = dr.GetInt32(dr.GetOrdinal("Id"));
contact.FirstName = dr.GetString(dr.GetOrdinal("FirstName"));
contact.LastName = dr.GetString(dr.GetOrdinal("LastName"));
contact.Email = dr.GetString(dr.GetOrdinal("Email"));
contact.Phone = dr.GetInt32(dr.GetOrdinal("Phone"));
contact.CompanyID = dr.GetInt32(dr.GetOrdinal("CompanyID"));
model.Add(contact);
}
}
}
}
}
return View(model);
}
}
}
Я также не уверен, что мои TextBoxes правильно подключены к моему действию ...
Существует много плохого кода. Вам нужно попасть в некоторые учебники и изучить некоторые базовые T-SQL, а также ASP.NET MVC, прежде чем у вас будет какая-либо деловая публикация на SO. – Jakotheshadows
Узнайте, как [Заявление о вводе SQL Server] (https://technet.microsoft.com/en-us/library/dd776381 (v = sql.105) .aspx) работает первым. – ekad
Что в этом плохого? – Malphai