gpt4 book ai didi

c# - Datalist 控件 : binding with ADO. NET 对象

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:01 24 4
gpt4 key购买 nike

代码如下:

private void ShowPossiblePurchases(string CategoryName)
{

string selectSQL = "SELECT TOP 2 * FROM Menu WHERE CategoryName=@CategoryName ORDER BY NEWID()";
SqlCommand cmd = new SqlCommand(selectSQL, connection);
cmd.Parameters.AddWithValue("@CategoryName", CategoryName);
SqlDataReader reader;

DataSet myDataSet = new DataSet();
myDataSet.Tables.Add("Products");


myDataSet.Tables["Products"].Columns.Add("ProductID");
myDataSet.Tables["Products"].Columns.Add("CategoryID");
myDataSet.Tables["Products"].Columns.Add("ProductName");
myDataSet.Tables["Products"].Columns.Add("Price");

DataList DataList1 = (DataList)lgnView.FindControl("DataList1");

try
{
connection.Open();
reader = cmd.ExecuteReader();

while (reader.Read())
{

DataRow rowNew = myDataSet.Tables["Products"].NewRow();
rowNew["ProductID"] = reader["ProductID"];
rowNew["CategoryID"] = reader["CategoryID"];
rowNew["ProductName"] = reader["ProductName"];
rowNew["Price"] = reader["Price"];
myDataSet.Tables["Products"].Rows.Add(rowNew);
}

DataList1.DataSource = myDataSet.Tables["Products"];
DataList1.DataBind();
}
catch(Exception ex)
{
Label lblError = (Label)lgnView.FindControl("lblError");
lblError.Text = ex.Message;
}
finally
{
connection.Close();
}
}

当我运行它时,没有任何反应。我做错了什么?

最佳答案

我已经在我这边重新创建了上面的代码并且它工作得很好。因为您没有提供 DataList 的来源,所以我坚信问题出在您没有正确绑定(bind) DataList 中的数据。

下面是一个关于如何做到这一点的例子:

<asp:DataList ID="DataList1" runat="server">
<HeaderTemplate>
<table>
<tr>
<td>
ProductID
</td>
<td>
CategoryID
</td>
<td>
ProductName
</td>
<td>
Price
</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table>
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem, "ProductID")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "CategoryID")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "ProductName")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "Price")%>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>

另外这里是 MSDN DataList文章。在这里您可以找到一个很好的示例,说明如何将数据绑定(bind)到 DataList。

只是一个笔记您尝试绑定(bind)到 DataaList 的任何特定原因?您问题中的代码可以像这样轻松绑定(bind)到 gridview:

Web.config

<connectionStrings>
<add name="conn" connectionString="your connection string"/>
</connectionStrings>

来源

<asp:GridView ID="GridView1" runat="server">
</asp:GridView>

代码隐藏

private void ShowPossiblePurchases(string categoryName)
{
if (!String.IsNullOrEmpty(categoryName))
{
try
{
string connString = System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
SqlConnection connection = new SqlConnection(connString);
string commandText = "SELECT TOP 2 * FROM Menu WHERE CategoryName=@CategoryName ORDER BY NEWID()";
using (connection)
{
using (SqlCommand command = new SqlCommand(commandText, connection))
{
command.Parameters.AddWithValue("@CategoryName", categoryName);
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataTable table = new DataTable();
adapter.Fill(table);
GridView1.DataSource = table;
GridView1.DataBind();
}
}
connection.Close();
}
catch (Exception ex)
{
Label lblError = (Label)Page.FindControl("lblError");
lblError.Text = ex.Message;
}
}
}

关于c# - Datalist 控件 : binding with ADO. NET 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com