#asp.net
#asp.net
Вопрос:
Привет, я создал сессионный массив :
int[] a = (int[])Session["values"];
Теперь я должен привязать это значение к моему gridview. У меня есть один столбец (boundfield в моем gridview) в gridview.
Я использовал код для привязки массива к gridview следующим образом, но он дает последнее значение только потому, что я хочу, чтобы все значения были привязаны :
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);
ds2 = new DataSet();
da2.Fill(ds2, "Result");
reviewgrid.DataSource = ds2;
reviewgrid.DataBind();
}
Какой код будет работать для этого?
Asp.net, c#
Спасибо.
Ответ №1:
Ваш код может не работать, потому что вы пытаетесь привязать gridview в цикле for, который продолжает повторяться, и в результате в конце будет привязан только один последний идентификатор массива.
Вы можете попробовать подготовить запрос заранее, прежде чем привязывать gridview, как показано в примере ниже.
string questIds = string.Empty;
for (int i = 0; i < a.Length; i )
{
if (questIds.Length > 0)
questIds = ", ";
questIds = a[i];
}
string strSQL = "select * from Quest_Info where Quest_id IN (" questIds ") order by Quest_id";
SqlDataAdapter da2 = new SqlDataAdapter(str, sqlconn);
ds2 = new DataSet();
da2.Fill(ds2, "Result");
reviewgrid.DataSource = ds2;
reviewgrid.DataBind();
Комментарии:
1. В этом коде, когда я использую response.write, тогда он выдает правильные значения questIds, но неправильные значения в gridview, в response.write это дает 5, 1, 6, 2, 3, 4 но фактически в gridview это дает 1 2 1 3 4 6 5
2. Я видел предложение ‘order by’ в вашем запросе. таким образом, результат будет отсортирован в порядке возрастания в вашем gridview.
3. нет, я удалил это предложение и также проверил. 1 также повторяется. но в response.write принимает правильные значения, т.е. задает вопросы, почему не в gridview
4. Я не могу придумать никаких других причин. вы можете проверить содержимое таблицы, Quest_Info. есть ли дубликат quest_id или нет.