Я работаю над школьным проектом, и у меня возникают проблемы только с одним функционалом из всего моего сайта.По какой-то причине, когда я нажимаю ссылку «Добавить в корзину», все мои параметры вставки вставляются как нулевые, даже если они не равны нулю в строке таблицы gridview.Мне нужно вставить артикул товара и цену в таблицу корзины со страницы моего списка товаров, где все товары с их изображениями отображаются в отформатированном виде сетки.Я пишу с использованием C #, ASP.net, HTML и CSS.Моя база данных спроектирована на MySQL.
Я уже несколько дней играю с этим, читаю различные ресурсы и пробую разные примеры кода и возможные исправления других вопросов о StackOverflow.Однако ничто не решило проблему, с которой я столкнулся.Я попытался вручную вставить параметры через кнопку ссылки.Ничто не похоже на работу.Я не уверен, что не так.
Веб-страница:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ShopHome.aspx.cs" Inherits="WebApplication1.App_Pages.ShopHome" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Shop</title>
<!-- Nav-bar required: -->
<link rel="stylesheet" href="assets/css/Navigation-with-Button.css"/>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"/>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<section>
<div id="nav-placeholder">
</div>
<script>
$(function () {
$("#nav-placeholder").load("nav-user.html");
});
</script>
</section>
<br /><br /> <br /><br /> <br /><br />
<form id="form1" runat="server">
<asp:GridView ID="items" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" DataKeyNames="sku" ShowInsertButton ="false">
<Columns>
<asp:BoundField DataField="sku" HeaderText="sku"
SortExpression="sku" ReadOnly="true"/>
<asp:BoundField DataField="color" HeaderText="color"
SortExpression="color" />
<asp:BoundField DataField="item_name" HeaderText="item_name"
SortExpression="item_name" />
<asp:BoundField DataField="price" HeaderText="price"
SortExpression="price" />
<asp:ImageField DataImageUrlField="imgPath" HeaderText="Image" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton Runat="server"
OnCommand= "GridView1_AddCart" CommandName="Insert">Add To Cart</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:starssparksConnectionString %>"
ProviderName="<%$ ConnectionStrings:starssparksConnectionString.ProviderName %>"
SelectCommand="SELECT * FROM Item"
InsertCommand="INSERT INTO Cart (item_sku,quantity,cost,user_id) Values (@sku,1,@price,@user_id)">
<InsertParameters>
<asp:Parameter Name="sku" />
<asp:Parameter Name="price" />
<asp:SessionParameter Name="user_id" sessionfield="user_id" />
</InsertParameters>
</asp:SqlDataSource>
</form>
</body>
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
<script src="assets/js/theme.js"></script>
</html>
Серверная часть для веб-страницы:
using System;
using WebApplication1.App_Code;
using MySql.Data.MySqlClient;
using System.Web.UI.WebControls;
namespace WebApplication1.App_Pages
{
public partial class ShopHome : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["user"] == null)
{
Response.Redirect("login.aspx");
}
else
{
userACC person = new userACC();
person.username = Session["user"].ToString();
int roleNum = person.checkRole();
if (roleNum != 1)
{
Response.Redirect("login.aspx");
}
}
userACC p = new userACC();
p.username = Session["user"].ToString();
int temp = p.getID();
this.Session["user_id"] = temp;
}
protected void GridView1_AddCart(object sender, System.Web.UI.WebControls.CommandEventArgs e)
{
if (e.CommandName == "Insert")
{
SqlDataSource1.Insert();
}
}
}
}
Настройка базы данных для соответствующих таблиц:
sku INT NOT NULL AUTO_INCREMENT,
color varchar(45),
item_name varchar(45),
price DECIMAL(10,2),
imgPath varchar(500),
PRIMARY KEY (sku)
);
create table Cart(
id INT NOT NULL AUTO_INCREMENT,
item_sku INT,
quantity INT,
cost DECIMAL(10,2),
user_id INT,
PRIMARY KEY (id),
FOREIGN KEY user_id (user_id) REFERENCES userACC (id),
FOREIGN KEY item_sku (item_sku) REFERENCES Item (sku)
);