2016-05-15 4 views
1

Я очень новый новичок для C#, не столько для старого стиля создания кода в vb. Но, пытаясь понять, как правильно написать инструкцию add sql, теперь дни сбивают с толку, я не уверен, что будет в следующем порядке: я сломаю инструкцию sql. Только для примеров.Что составляет правильный оператор SQL add, разбитый на части для Basic Beginners для Webmatrix 3?

var addsqlquery = "INSERT INTO Expenses (Company_Name, Company_Address, Company_City, Company_State, State_Tax_Rate1, Item_Name, Item_Price, Sales_Tax_Amount, State_Tax_Rate2, Zip_Code, Phone_Number, Quantity, Date_Bought, Truck_Number, Tax_Type) VALUES (@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,10,@11,@12,@13,@14) 

Теперь главная путаница, Что значения @ 1, @ 2, @ 3, @ 4, @ 5 и так далее, откуда эта информация берется. делает что @ 0 приходят из следующей строки в коде, например:

db.Execute(insertQuery,Company_Name, Company_Address, Company_City,Company_State, State_Tax_Rate1, Item_Name, Item_Price, Sales_Tax_Amount,State_Tax_Rate2, Zip_Code, Phone_Number, Quantity, Date_Bought, Truck_Number, Tax_Type); 

как @ 0 = Company_Name? @ 2 = Company_Address? Если это так, он должен тянуть их переменные из представить наполнение кнопки позволяет сказать:

var Company_Name=Request.Form["Company_Name"]; Correct? 

Я очень новый для структур программирования в C#, и WebMatrix, но я запутался, и если кто-то может просто объяснить мне, где их переменные от и до того, где они получают свою информацию, я думаю, что смогу, наконец, закончить 1 страницу обновления моих страниц от asp (classic) до cshtml-стиля. Заранее спасибо.

ответ

1

Знаки, которые начинаются с знака @ и постепенно увеличиваются с 0, являются держателями параметров. То есть, они являются владельцами мест для значений, которые предоставляются в инструкции sql.

Как правило, значения исходят от пользователя в виде размещенных значений формы. Вы используете параметры в своем коде для защиты от возможных атак SQL-инъекций.

Вы передаете значения (или источник их) к методам Database.Execute, Database.Query, Database.QueryValue или Database.QuerySingle в том порядке, в котором они появляются в SQL, например

var sql = INSERT INTO People (Firstname, Lastname, DateOfBirth) VALUES (@0,@1,@2) 
db.Execute(sql, Request.Form["Firstname"], Request.Form["Lastname"], Request.Form["Dob"]); 

Вы должны потратить некоторое время на чтение вводных руководств для веб-страниц ASP.NET/Razor, особенно на доступ к данным: http://www.asp.net/web-pages/overview/data/5-working-with-data.

Я также написал короткую серию статей о переносе с классического ASP на веб-страницы, которые также могут оказаться полезными. Вот один из данных: http://www.mikesdotnetting.com/article/226/migrating-classic-asp-to-asp-net-razor-web-pages-part-two-data-access

 Смежные вопросы

  • Нет связанных вопросов^_^