2012-08-15 8 views
0

Я C# программист. В настоящее время я пытаюсь добавить некоторые 3 из 5 столбцов (fileId, filePath, authorName, fileContent, DateSend) в sql-данные в datagrid-viewer; столбец fileId и fileContent скрыты. Большое спасибо!datagridview отображает выбранную строку из базы данных sql?

 con = new SqlConnection("Data Source=LEO-PC\\SQLEXPRESS;Initial Catalog = datashare;Integrated Security = True"); 
     cmd = new SqlCommand("select * from maintable", con); 
     con.Open(); 
     SqlDataReader sqlRead; 
     try 
     { 
      sqlRead = cmd.ExecuteReader(); 
      while (sqlRead.Read()) 
      { 
       //Adding to datagrid 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
     finally 
     { 
      con.Close(); 
     } 
+0

Если вы новичок, вы можете проверить элемент управления SQLDataSource. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.aspx –

ответ

0

Чтобы скрыть 2 поля создают OnRowCreated событие в сетке:

OnRowCreated = "gridView1_RowCreated"

Не забудьте заполнить сетку с помощью

SqlDataReader reader = cmd.ExecuteReader();  
gridView1.DataSource = reader; 

и сетка должна иметь свойство должно быть AutoGeneretedColumns = "true"

Затем создайте событие следующим образом:

protected void gridView1_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
      if (e.Row.RowType == DataControlRowType.Header) 
      { 
       for (int i = 0; i < e.Row.Cells.Count; i++) 
       { 
        DataControlFieldCell cell = 
         (DataControlFieldCell) e.Row.Cells[i]; 


        if (cell.ContainingField.HeaderText == "fileId") 
        { 
         e.Row.Cells[i].Visible = false; 
         cell.Visible = false; 
        } 

        if (cell.ContainingField.HeaderText == "fileContent") 
        { 
         e.Row.Cells[i].Visible = false; 
         cell.Visible = false; 
        } 
       } 
      } 

      if (e.Row.RowType == DataControlRowType.DataRow) 
      { 
       for (int i = 0; i < e.Row.Cells.Count; i++) 
       { 
        DataControlFieldCell cell = 
         (DataControlFieldCell) e.Row.Cells[i]; 

        if (cell.ContainingField.ToString() == "fileId") 
        { 
         cell.Visible = false; 
        } 

        if (cell.ContainingField.ToString() == "fileContent") 
        { 
         cell.Visible = false; 
        } 
       } 
      } 
} 

Это может быть не самый эффективный способ, но он служит цели с помощью кода. Следует иметь возможность скрывать столбцы, используя шаблон gridview, когда столбцы привязаны.

Смежные вопросы