C# 对于Webmatrix 3的初学者来说,正确的SQL add语句是由什么组成的?

C# 对于Webmatrix 3的初学者来说,正确的SQL add语句是由什么组成的?,c#,sql,sql-server,webmatrix,C#,Sql,Sql Server,Webmatrix,我是C#的新手,不太喜欢用vb编写代码的旧式风格。但是现在试图找出正确的方法来编写addsql语句是非常令人困惑的,我不确定下面的顺序,我将分解sql语句。仅供参考 var addsqlquery = "INSERT INTO Expenses (Company_Name, Company_Address, Company_City, Company_State, State_Tax_Rate1, Item_Name, Item_Price, Sales_Tax_Amount, State

我是C#的新手,不太喜欢用vb编写代码的旧式风格。但是现在试图找出正确的方法来编写addsql语句是非常令人困惑的,我不确定下面的顺序,我将分解sql语句。仅供参考

   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=公司名称@2=公司地址?如果是这种情况,它应该从submit按钮中提取变量,例如:

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

我对C#和webmatrix中的编程结构非常陌生,但我感到困惑,如果有人能向我解释变量的来源和获取信息的途径,我想我可能最终能够完成一页从asp(经典)到cshtml风格的页面升级。提前感谢。

@
符号开头并从0开始依次递增的令牌是参数占位符。也就是说,它们是提供给sql语句的值的占位符

通常,这些值作为已发布的表单值来自用户。您可以在代码中使用参数来防止可能的SQL注入攻击

您可以将值(或它们的源)按它们在SQL中出现的顺序传递给Database.Execute、Database.Query、Database.QueryValue或Database.QuerySingle方法,例如

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的入门教程,尤其是关于数据访问的教程:

我还写了一系列关于从经典ASP迁移到Web页面的短篇文章,您可能也会发现这些文章很有帮助。这是一个关于数据的例子: