C# 按钮没有发挥应有的功能
我有一个项目,创建一个网站,连接我的数据库,以执行不同的功能。当我创建web表单并将其与数据库连接时,当我单击按钮时,所有产品都会出现,但不会出现 以下是SQL过程:C# 按钮没有发挥应有的功能,c#,html,sql,asp.net,C#,Html,Sql,Asp.net,我有一个项目,创建一个网站,连接我的数据库,以执行不同的功能。当我创建web表单并将其与数据库连接时,当我单击按钮时,所有产品都会出现,但不会出现 以下是SQL过程: CREATE PROC reviewOrders AS BEGIN SELECT * FROM Orders END 这是c代码 以及HTML代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehin
CREATE PROC reviewOrders
AS
BEGIN
SELECT *
FROM Orders
END
这是c代码
以及HTML代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReviewOrders.aspx.cs"
Inherits="GUCommerce.ReviewOrders" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="viewOrders" runat="server" OnClick ="reviewOrders" Height="45px"
Text="view orders" Width="148px" />
</div>
<p style="height: 121px">
</p>
<asp:Panel ID="x" Visible ="false" runat="server" Height="338px">
<asp:Table ID="orders" CellPadding ="4" runat="server" Height="67px" Width="316px">
</asp:Table>
</asp:Panel>
</form>
</body>
</html>
能告诉我少了什么吗?
感谢是前进 我建议使用
ASP Gridview
而不是ASP Table
。GridView(
)用于在表中显示数据。它们实际上被呈现为html表。以下是如何使用您的代码构建一个:
<asp:Panel ID="x" Visible="false" runat="server" Height="338px">
<%--<asp:Table ID="orders" CellPadding="4" runat="server" Height="67px" Width="316px"></asp:Table>--%>
<asp:GridView ID="gvOrders" CellPadding="4" runat="server" Height="67px" Width="316px"></asp:GridView>
</asp:Panel>
注意:我使用
using(SqlConnection)
和using(cmd)
来处理关闭连接和命令。试一试。看起来您缺少用结果填充/填充表格的代码。@dvo我对C#和HTML完全不熟悉,所以您能帮我一下吗?有很多不同的主题(关于StackOverflow和通过简单的谷歌搜索)在消耗数据……但如果您仔细想想,在cmd.ExecuteNonQuery()之后,您实际在对数据做什么因为您需要对该数据执行某些操作。ExecuteNonQuery
在不返回结果时使用。您正在返回结果。在GridView中创建DataBind()后,请查看此引用以填充行数据(通过BoundFields或在此处指定TemplateField和所需控件):@JohnPete22感谢您的引用。To OP-这是生成表列的首选方法,因为它提供了更多的控制,但它们应该基于DataTable自动生成。您可能需要将AutoGenerateColumns=“true”
添加到GridView中attributes@dvo如果OP正在使用RWD网站,那么GridView将在标记中自动生成一个表时破坏布局。在这种情况下,ListView工作得更好。
<asp:Panel ID="x" Visible="false" runat="server" Height="338px">
<%--<asp:Table ID="orders" CellPadding="4" runat="server" Height="67px" Width="316px"></asp:Table>--%>
<asp:GridView ID="gvOrders" CellPadding="4" runat="server" Height="67px" Width="316px"></asp:GridView>
</asp:Panel>
protected void reviewOrders(object sender, EventArgs e)
{
// data table variable outside of sql block
// you could also move the sql code to another method that returns a datatable
DataTable dt = null;
string connStr = ConfigurationManager.ConnectionStrings["MyDbConn"].ToString();
using (SqlConnection conn = new SqlConnection(connStr))
{
SqlCommand cmd = new SqlCommand("reviewOrders", conn);
cmd.CommandType = CommandType.StoredProcedure;
using (cmd)
{
conn.Open();
// Use SQL Data Adapter instead of Execute Non Query
using (SqlDataAdapter _Adapter = new SqlDataAdapter(cmd))
{
// Fill DataTable with results of query
dt = new DataTable();
_Adapter.Fill(dt);
}
}
}
//
gvOrders.DataSource = dt;
gvOrders.DataBind();
}