【发布时间】:2019-04-29 02:24:19
【问题描述】:
我正在尝试将数据库中的数据绑定到我的网格视图中。我的一列包含 varbinary(MAX) 数据类型。 当我绑定它时,我的 gridview 显示 System.Byte[] 而不是实际数据。
我试图反序列化对象,但我不知道从那里去哪里? 我也尝试过使用自己的 ItemTemplate。
带有 VARBINARY 的表:
CREATE TABLE [dbo].[TP_ShoppingCart] (
[ShoppingCartID] INT IDENTITY (1, 1) NOT NULL,
[Email] VARCHAR (250) NOT NULL,
[ShoppingCart] VARBINARY (MAX) NULL,
PRIMARY KEY CLUSTERED ([ShoppingCartID] ASC),
CONSTRAINT [FK_TP_ShoppingCart_TP_CustomerAccts] FOREIGN KEY ([Email]) REFERENCES [dbo].[TP_CustomerAccounts] ([Email])
);
存储过程:
CREATE PROCEDURE [dbo].TP_GetSalesByCustomer
@theEmail varchar(250)
AS
SELECT * FROM TP_Sales s JOIN TP_ShoppingCart sa ON s.ShoppingCartID = sa.ShoppingCartID
WHERE s.Email = @theEmail AND sa.Email = @theEmail;
网格视图代码:
<asp:Panel ID="SalesPanel" runat="server" CssClass="col-sm-8 col-md-8 col-lg-8 table-bordered">
<h1><small><span class="glyphicon glyphicon-th-list" aria-hidden="true"></span></small> Customer Sales</h1>
<br />
<br />
<asp:GridView ID="gvSales" runat="server" AutoGenerateColumns="false" CssClass="table table-bordered table-hover">
<Columns>
<asp:BoundField DataField="SalesID" HeaderText="Sales ID" SortExpression="SalesID" />
<asp:BoundField DataField="SaleDate" HeaderText="Date of Sale" DataFormatString="{0:d}" />
<asp:TemplateField HeaderText="Products">
<ItemTemplate>
<asp:Label ID="lblShoppingCart" runat="server" Text='<%# Eval("ShoppingCart") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ShoppingCart" HeaderText="Products" DataFormatString="" />
<asp:BoundField DataField="SaleTotal" HeaderText="Sale Total" DataFormatString="{0:C0}" />
</Columns>
</asp:GridView>
</asp:Panel>
代码隐藏:
protected void btnSalesAccount_Click(object sender, EventArgs e)
{
CustomerAccountPanel.Visible = false;
UpdateAccountPanel.Visible = false;
CustomerCCPanel.Visible = false;
UpdatePasswordPanel.Visible = false;
SalesPanel.Visible = true;
gvSales.Visible = true;
DBConnect objDB = new DBConnect();
SqlCommand objCmd = new SqlCommand();
objCmd.CommandType = CommandType.StoredProcedure;
objCmd.CommandText = "TP_GetSalesByCustomer";
//string email = Session["custEmail"].ToString();
objCmd.Parameters.AddWithValue("@theEmail", email);
gvSales.DataSource = objDB.GetDataSetUsingCmdObj(objCmd);
gvSales.DataBind();
【问题讨论】:
标签: c# asp.net gridview aspxgridview varbinary