2012-07-02 1 views
2

У меня возникли проблемы с попыткой вставить данные для этого проекта, над которым я работаю. У меня есть три GridViews, которые я хочу заполнить тремя наборами данных из запроса. В приведенном ниже коде генерируются только три сетки; все они дублируют третий набор.Как положить 3 набора данных в asp.net

То, что я пытаюсь сделать, это получить первый набор и поместить его в первую сетку, получить второй набор и поместить его во вторую сетку, а третий - в третью сетку.

Я не знаю, почему он извлекает только последний набор. Я думаю, что это как-то связано с адаптером?

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     DataTable dt = new DataTable(); 
     DataTable dt2 = new DataTable(); 
     DataTable dt3 = new DataTable(); 
     SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ISALog1ConnectionString"].ToString()); 
     SqlCommand cmd = new SqlCommand("exec ProxyReport", conn); 
     cmd.CommandTimeout = 200; 
     SqlDataAdapter ad = new SqlDataAdapter(cmd); 
     ad.Fill(dt); 
     ad.Fill(dt2); 
     ad.Fill(dt3); 

     GridView1.DataSource = dt; 
     GridView1.DataBind(); 
     GridView2.DataSource = dt2; 
     GridView2.DataBind(); 
     GridView3.DataSource = dt3; 
     GridView3.DataBind(); 
    } 
} 

Вот что он получает, он получает последний набор внизу и дублирует его один раз. Я понимаю, что код делает то же самое, поэтому он дублирует, но почему третий набор, а не первый или средний? Как получить первую сетку для первого набора, а второй - второй?

enter image description here

+2

Поскольку ad.Fill (dt3); Ваше последнее заявление для заполнения адаптера –

+0

Ваш запрос не меняется или я что-то не хватает? – codingbiz

+0

Вы заполняете все 3 из них одним и тем же sproc «ProxyReport» (объявление) – user1166147

ответ

1

попробовать с набором данных, и получить DataTable из набора данных.

DataSet dataSet = new DataSet(); 
SqlDataAdapter ad = new SqlDataAdapter(cmd); 
     ad.Fill(dataSet); 

     GridView1.DataSource = dataset.Tables[0]; 
     GridView1.DataBind(); 
     GridView2.DataSource = dataset.Tables[1]; 
     GridView2.DataBind(); 
     GridView3.DataSource = dataset.Tables[2]; 
     GridView3.DataBind(); 
+0

спасибо! это то, что мне нужно. – Cloud

+0

Я доволен тем, что вы облако –

+0

Хорошо, код, который я разместил выше, форматирование было выровнено правильно. но когда я перешел на адаптер данных, это испортило форматирование. Я не уверен, как это произойдет. – Cloud