关于在asp.net c中将数据绑定到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";

嗨 我有从其他页面获取的会话数组值。我希望所有的值都与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";
            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