2016-11-27 3 views
0

Я пытаюсь вставить некоторые данные в свою базу данных в Webmatrix, я сделал это с помощью учебника, а затем попытался переделать его на второй файл во вторую таблицу в той же базе данных, и я просто для своей жизни не может показаться, почему это не работает! Я отправлю код из разных файлов cshtml!SQL INSERT, проблема

Кроме того, таблицы в значительной степени идентичны, как с идентификатором первичного ключа, так и с тремя столбцами, все из которых являются nvarchar и одинаковыми настройками для всего, только разница - это имя.

первый файл (тот, который работает)

@{ 
var getData = Database.Open("SmallBakery"); 
var Name = Request.Form["Name"]; 
var Description = Request.Form["Description"]; 
var Price = Request.Form["Price"]; 

if(IsPost && Validation.IsValid()){ 
     if (ModelState.IsValid) { 
      var setData = "INSERT INTO Product (Name, Description, Price) " + 
      "VALUES (@0, @1, @2)"; 

      getData.Execute(setData, Name, Description, Price); 
      Response.Redirect("~/ListProducts"); 
     } 
    } 
} 

в теле

<form method="post" action=""> 
<fieldset> 
<legend>Add Product</legend> 
<div> 
    <input placeholder="Name..." name="Name" type="text" size="50" value="@Name" /> 
</div> 
<div> 
    <input placeholder="Description..." name="Description" type="text" size="50" 
     value="@Description" /> 
</div> 
<div> 
    <input placeholder="Price..." name="Price" type="text" size="50" value="@Price" /> 
</div> 
<div> 
    <label>&nbsp;</label> 
    <input type="submit" value="Insert" class="submit" /> 
</div> 
</fieldset> 
</form> 

Таким образом, выше является тот, который работает! Следующие не работают, я пытался часами выяснять, почему на земле нет, и мне действительно нужна помощь!

и ошибка им ПОЛУЧАТЬ для этой строки:

getData.Execute(insertData, kg, set, rep); 

.

{@ 
    var getData = Database.Open("SmallBakery"); 
    var Kg = Request.Form["Kg"]; 
    var Set = Request.Form["Set"]; 
    var Rep = Request.Form["Rep"]; 

    if (IsPost && Validation.IsValid()) { 
     if (ModelState.IsValid) { 
      var insertData = "INSERT INTO Test (kg, set, rep) " + 
      "VALUES (@0, @1, @2)"; 

      getData.Execute(insertData, kg, set, rep); 
     } 
    } 
} 

в теле

<form method="post" action=""> 
     <fieldset> 
     <legend>Add Product</legend> 
     <div> 
      <input placeholder="KG..." name="Kg" type="text" size="50" value="@Kg" /> 
     </div> 
     <div> 
      <input placeholder="Number of sets..." name="Set" type="text" size="50" value="@Set" /> 
     </div> 
     <div> 
      <input placeholder="Number of reps..." name="Rep" type="text" size="50" value="@Rep" /> 
     </div> 
     <div> 
      <label>&nbsp;</label> 
      <input type="submit" value="Insert" class="submit" /> 
     </div> 
     </fieldset> 
    </form> 

ответ

2

Проблема заключается в том, что Set является reserved word in SQL Server и многих других баз данных и языков поэтому попробуйте переименовать столбец таблицы что-то другое и посмотреть, если это работает.

+0

святое дерьмо ... такая глупая ошибка, ха-ха, во всяком случае, спасибо за то, что ты спасатель! Шутки в сторону! –