通过字符串传递ID来显示Gridview VS Literal控件中的结果
本文关键字:Literal VS 控件 结果 Gridview 显示 字符串 ID | 更新日期: 2023-09-27 18:14:32
我有一个web应用程序,由一个带有两个url的页面组成,当点击它们时,它们分别显示产品到另一个根据供应商ID从北风数据库的"产品"表中找到。当使用文字控件时,一切都很好,然而,在周围的实验中,我将文字控件更改为Gridview,而不是列出所有的控件对于各自的产品,我得到一个列,该列仅显示各自供应商ID组的最后一个产品。例如
结果:项目:C、h、g…有人能告诉我哪里做错了吗?这是我的代码
/******** Hypertext (page with the URLs):
<div>
<div><a href="gridtest.aspx?orderList=1">Supplier ID 1</a> </div>
<div><a href="gridtest.aspx?orderList=2">Supplier ID 2</a> </div>
</div>
/******** Hypertext (page with the Gridview):
<asp:GridView ID="gvSupplies" runat="server">
</asp:GridView>
/********* code behind gridview page:
protected void Page_Load(object sender, EventArgs e)
{
// Retrieve the connection string stored in the Web.config file.
String connectionString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
string mySQLQuery = null;
string vID = Request.QueryString["orderList"];
mySQLQuery = "SELECT SupplierID, ProductName, UnitPrice, UnitsOnOrder FROM Products WHERE (SupplierID = SupplierID) AND SupplierID ='" + vID + "' ORDER BY ProductName ";
SqlCommand myCommand = new SqlCommand(mySQLQuery, connection);
SqlDataReader myReader1 = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
while ((myReader1.Read()))
{
gvSupplies.DataSource = myReader1.GetString(1) + " " + myReader1.GetValue(2);
gvSupplies.DataBind();
}
connection.Close();
}
您似乎对gridview(http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx)的工作方式感到困惑。我会去找一些关于在Asp.net中使用视图绑定数据的教程。
对于短期来说,网格视图意味着表示一个数据表。您应该只将数据绑定到它一次。默认情况下,它将尝试挑选出列和行,并在此基础上显示一些内容。
while ((myReader1.Read()))
{
gvSupplies.DataSource = myReader1.GetString(1) + " " + myReader1.GetValue(2);
gvSupplies.DataBind();
}
gvSupplies.DataSource = myReader1;
gvSupplies.DataBind();