2013-07-15 3 views
0

Я хочу заполнить первый столбец сетки & с запросом 1 и третий столбец с запросом2 и четвертый столбец с запросом3.Заполните столбцы GridView, используя несколько запросов

код выполняется в RowDataBound случае сетки, но это не работает:

protected void gvInner_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    gvInner.Visible = true; 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     Label iso = (Label)gvInner.FindControl("lbl_iso"); 
     Label description = (Label)gvInner.FindControl("lbl_desp"); 

     string str1 = @"SELECT M_MR_ISO_Heads.iso as iso, M_MR_ISO_Heads.description as description 
         FROM 
          T_MR_Action_point_Pre_MRM_C INNER JOIN M_MR_ISO_Heads 
          ON T_MR_Action_point_Pre_MRM_C.iso_heads = M_MR_ISO_Heads.description"; 

     DataTable dt = new DataTable(); 
     dt = SQL_DB.ExecuteDataTable(str1); 

     if (dt.Rows.Count > 0) 
     { 
      iso.Text = dt.Rows[0]["iso"].ToString(); 
      description.Text = dt.Rows[0]["description"].ToString(); 
     } 

     Label mrmpoints = (Label)gvInner.FindControl("lbl_mrmpoints"); 
     string str2 = @"SELECT T_MR_Action_point_Pre_MRM_C.mrm_no as mrmpoints 
         FROM 
          T_MR_Action_point_Pre_MRM_C INNER JOIN M_MR_ISO_Heads 
          ON T_MR_Action_point_Pre_MRM_C.iso_heads = M_MR_ISO_Heads.description 
           AND T_MR_Action_point_Pre_MRM_C.iso_heads = M_MR_ISO_Heads.description"; 
     DataTable dt1 = new DataTable(); 
     dt1 = SQL_DB.ExecuteDataTable(str2); 

     if (dt1.Rows.Count > 0) 
     { 
      mrmpoints.Text = dt1.Rows[0]["mrmpoints"].ToString(); 
     } 

     Label totalpoints = (Label)gvInner.FindControl("lbl_tpoints"); 
     string str3 = @"SELECT Count(T_MR_Action_point_Pre_MRM_C.mrm_no) as totalpoints 
         FROM 
          T_MR_Action_point_Pre_MRM_C INNER JOIN M_MR_ISO_Heads 
           ON T_MR_Action_point_Pre_MRM_C.iso_heads = M_MR_ISO_Heads.description 
            AND      T_MR_Action_point_Pre_MRM_C.iso_heads = M_MR_ISO_Heads.description"; 

     DataTable dt2 = new DataTable(); 
     dt2 = SQL_DB.ExecuteDataTable(str3); 


     if (dt2.Rows.Count > 0) 
     { 
      totalpoints.Text = dt2.Rows[0]["totalpoints"].ToString(); 
     } 
    } 
} 
+0

Как это не работает? Пожалуйста, предоставьте более подробную информацию (например, коды ошибок и т. Д.). –

ответ

0

Изменить Эти линии.

Label iso = (Label)gvInner.FindControl("lbl_iso"); 
Label description = (Label)gvInner.FindControl("lbl_desp"); 

С

Label iso = (Label)e.Row.FindControl("lbl_iso"); 
Label description = (Label)e.Row.FindControl("lbl_desp"); 
Смежные вопросы