关于在asp.net c中将数据绑定到gridview
嗨 我有从其他页面获取的会话数组值。我希望所有的值都与gridview绑定。但我只得到数组的最后一个值。我使用了以下代码:关于在asp.net c中将数据绑定到gridview,asp.net,Asp.net,嗨 我有从其他页面获取的会话数组值。我希望所有的值都与gridview绑定。但我只得到数组的最后一个值。我使用了以下代码: int[] a = (int[])Session["values"]; for (int i = 0; i < a.Length; i++) { str = "select * from Quest_Info where Quest_id='" + a[i] + "' order by Quest_id";
int[] a = (int[])Session["values"];
for (int i = 0; i < a.Length; i++)
{
str = "select * from Quest_Info where Quest_id='" + a[i] + "' order by Quest_id";
SqlDataAdapter da2 = new SqlDataAdapter(str, sqlconn);
DataSet ds2 = new DataSet();
da2.Fill(ds2, "Result");
reviewgrid.DataSource = ds2;
reviewgrid.DataBind();
}
为什么我只得到第一个值?
Asp.NETC
谢谢。您正在为数组中的每个值执行一个新命令,并重新绑定网格 网格只能有一个数据源。每次调用DataBind时,它都会删除以前网格中的内容,并将其绑定到新的源
您需要修改查询以一次返回所需的所有行,而不是多次执行查询并每次返回一行。您正在为数组中的每个值执行一个新命令,并重新绑定网格 网格只能有一个数据源。每次调用DataBind时,它都会删除以前网格中的内容,并将其绑定到新的源
您需要修改查询以一次返回所需的所有行,而不是多次执行查询并每次返回一行。因为您正在遍历值列表并为每个值的数据绑定重置select命令。datagrid只能有一个数据绑定,所以它是最后一个被设置的数据绑定 您需要执行以下操作:
int[] a = (int[])Session["values"];
string s = String.Join(",", a); // join the array into a comma-separated string
SqlDataSource1.SelectCommand = "select * from Quest_Info where Quest_id in (" + s + ") order by Quest_id";
reviewgrid.DataBind();
因为您正在遍历值列表,并为每个值的数据绑定重置select命令。datagrid只能有一个数据绑定,所以它是最后一个被设置的数据绑定 您需要执行以下操作:
int[] a = (int[])Session["values"];
string s = String.Join(",", a); // join the array into a comma-separated string
SqlDataSource1.SelectCommand = "select * from Quest_Info where Quest_id in (" + s + ") order by Quest_id";
reviewgrid.DataBind();
为什么使用String.Join、、a;这项声明。这里它不起作用它的给出错误您的SQL语句需要类似于Select*from Quest_Info,其中Quest_id按Quest_id的顺序为2,4,6。这将获得Quest_id为2,4或6的行。这假设Quest_id是一个数字列。如果是字符类型,则参数中的位应为“2”、“4”、“6”;i