2016-05-15 9 views
1

Ich bin ein sehr neuer Anfänger zu C#, nicht so sehr zu dem alten Stil, Code in Vb zu tun. Aber versuchen, herauszufinden, die richtige Art und Weise, um eine Add SQL-Anweisung jetzt Tage zu schreiben ist extrem verwirrend, ich bin mir nicht sicher, was die folgende Reihenfolge geht Ich werde die SQL-Anweisung zerlegen. Nur zu Beispielzwecken.Was macht die richtige SQL-Anweisung, in Teile für die Basic Anfänger für Webmatrix 3 gebrochen?

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) 

Nun ist die wichtigste Verwirrung, was die Werte von @ 1, @ 2, @ 3, @ 4 @ 5 und so weiter, woher diese Informationen stammen. tut die @ 0 kommen aus der nächsten Zeile im Code zum Beispiel:

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); 

wie @ 0 = Company_Name? @ 2 = Firmenadresse? Wenn das der Fall ist, sollte es ihnen Variablen aus der Schaltfläche Füllung einreichen ziehen können sagen:

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

Ich bin sehr neu in der Programmierung Strukturen in C# und WebMatrix aber ich bin verwirrt, und wenn jemand kann mir nur erklären, wo sie Variablen sind von und zu, wo sie ihre Informationen erhalten, ich denke, dass ich in der Lage sein werde, schließlich 1 Seite zu beenden, meine Seiten von asp (klassisch) zu cshtml Stil zu aktualisieren. Vielen Dank im Voraus.

Antwort

1

Die Token, die mit dem Zeichen @ beginnen und fortlaufend von 0 inkrementieren, sind Parameter-Platzhalter. Das heißt, sie sind Platzhalter für Werte, die an die SQL-Anweisung geliefert werden.

In der Regel stammen die Werte vom Benutzer als gepostete Formularwerte. Sie verwenden Parameter in Ihrem Code, um sich vor möglichen SQL-Injection-Angriffen zu schützen.

Sie übergeben die Werte (oder die Quelle von ihnen) auf die Database.Execute, Database.Query, Database.QueryValue oder Database.QuerySingle Methoden in der Reihenfolge, in der sie in der SQL zB erscheinen

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

Sie sollten einige Zeit damit verbringen, die Einführungsanleitungen für ASP.NET-Webseiten/Razor zu lesen, insbesondere die zum Datenzugriff: http://www.asp.net/web-pages/overview/data/5-working-with-data.

Ich habe auch eine kurze Reihe von Artikeln über die Migration von klassischen ASP zu Webseiten geschrieben, die Sie auch hilfreich finden könnten. Hier ist der über Daten: http://www.mikesdotnetting.com/article/226/migrating-classic-asp-to-asp-net-razor-web-pages-part-two-data-access

Verwandte Themen