2011-02-05 14 views

Respuesta

21

Cree las columnas para el DataGridView usted mismo. Prueba algo como esto.

DataGridView dataGridView1 = new DataGridView(); 
BindingSource bindingSource1 = new BindingSource(); 

dataGridView1.ColumnCount = 2; 

dataGridView1.Columns[0].Name = "Field1"; 
dataGridView1.Columns[0].DataPropertyName = "Field1"; 
dataGridView1.Columns[1].Name = "Field2"; 
dataGridView1.Columns[1].DataPropertyName = "Field2"; 

bindingSource1.DataSource = GetDataTable(); 
dataGridView1.DataSource = bindingSource1; 
0

Podemos crear una nueva DataTable con las columnas requeridas y agregarle filas desde el conjunto de datos. Luego, podemos inicializar DataGrid con la DataTable recién creada.

dt = new DataTable();   
dt_Property.Columns.Add("Field1"); 
dt_Property.Columns.Add("Field2"); 
int i = 0; 
DataRow row = null; 
foreach (DataRow r in ds.Tables[0].Rows) 
{    
    row = dt.NewRow();      
    row["Field1"] = ds.Tables[0].Rows[i][1]; 
    row["Field2"] = ds.Tables[0].Rows[i][2]; 
    dt_Property.Rows.Add(row); 
    i = i + 1; 
} 

dataGridView1.DataSource = dt; 
16

Añadir la columna que el anterior respuesta, y no se olvide de establecer:

dataGridView1.AutoGenerateColumns=false; 
+1

Fantástico recordatorio. Gracias. Me salvó el día. – user1298925

1

Esta fue preguntado hace un tiempo, por lo que probablemente no necesitará esta respuesta ... espero que otros encontrarán es útil

Tuve que hacer algo similar, y encontré que la solución más simple era crear una copia temporal de la tabla (en la que se almacenan sus datos) y luego simplemente eliminar la columna en cuestión. Por ejemplo:

DataTable temp = YourDataTable; 
temp.Columns.Remove(temp.Columns[2]) // Will remove the third column for example 
YourDataTable.DataSource = temp; 
YourDataTable.DataBind(); 

Creo que esto debería hacer el truco.

¡Salud!

0
private void Form1_Load(object sender, EventArgs e) 
    { 
     SqlConnection con = new SqlConnection("connection string"); 
     SqlDataAdapter adp = new SqlDataAdapter("select Fieldname1,fieldname2 from Table Name", con); 
     DataSet ds = new DataSet(); 
     ds.Clear(); 
     adp.Fill(ds); 
     if (ds.Tables[0].Rows.Count > 0) 
     { 
      dataGridView1.DataSource = ds.Tables[0]; 
    } 

Definitivamente funcionará.

0

Enlace DataTable a DataGridView después de eso, oculte la columna que no desea.

dataGridView1.DataSource = datatable; 
dataGridView1.Columns["ColumnName"].Visible = false; 
Cuestiones relacionadas