Я написал нижеприведенный код для добавления товаров в корзину, а затем для их вывода, а также для отправки нескольких запросов на сервер для вставки и выбора данных.
Я вчера отправил вопрос о присвоении результатакоманда SQL для переменной, но, похоже, ничего не работает, возможно, из-за написанного мною кода, если есть решение для этого, я был бы очень признателен.
Также есть способ упростить команды SQL, которые яКажется, я делаю довольно много
Я знаю об уязвимости для атак с использованием SQL-инъекций, это всего лишь проект Uni, и я сомневаюсь, что лектор даже знает о них!Тем не менее, я разберусь с этим, как только у меня заработает базовая функциональность:)
string CurrentUser="";
if (User.Identity.IsAuthenticated) {
CurrentUser = Membership.GetUser(HttpContext.Current.User.Identity.Name).ProviderUserKey.ToString(); //Get the current user
}
//Insert the current user into the DB
BasketPage.InsertCommand = "INSERT INTO tblBasket(UserID, CreatedDate) VALUES ('" + CurrentUser + "'), CONVERT (DATETIME, '2010-11-20 00:00:00', 102))";
//Select the Basket ID for this user which is an auto increment hence why I inserted the user first
BasketPage.SelectCommand = "SELECT BasketID FROM tblBasket WHERE (UserID = '" + CurrentUser + "')";
var basketID= //Result of the previous select command
if (Session["CartSess"] != null) {
List<BasketClass> cart = (List<BasketClass>)Session["CartSess"];
foreach (BasketClass BookID in (List<BasketClass>)Session["CartSess"]) {
BasketPage.InsertCommand = "INSERT INTO tblBasketDetails(BasketID, BookID) VALUES (" +
basketID + "," + BookID + ")"; //Inserts each book into the DB and the Basket ID
BasketPage.Insert();
}
}
//Outputs the Basket for the current user
BasketPage.SelectCommand = "SELECT tblBasket.UserID, tblBasket.BasketID, tblBooks.Title, tblBasketDetails.Quantity " +
"FROM tblBasket " +
"INNER JOIN tblBasketDetails ON tblBasket.BasketID = tblBasketDetails.BasketID " +
"INNER JOIN tblBooks ON tblBasketDetails.BookID = tblBooks.BookID " +
"WHERE (tblBasket.UserID = '" + CurrentUser + "')";