c# - pertenece - ¿Cómo agregar un nuevo DataRow en DataTable?
datatable.rows c# (8)
Tengo un DataGridView
enlazado a un DataTable
( DataTable
enlazado a la base de datos). Necesito agregar un DataRow
a la DataTable
. Estoy tratando de usar el siguiente código:
dataGridViewPersons.BindingContext[table].EndCurrentEdit();
DataRow row = table.NewRow();
for (int i = 0; i < 28; i++)
{
row[i] = i.ToString();
}
Pero no funciona, a DataGridView
nunca se le ha agregado una nueva fila. Por favor, dime, ¿cómo puedo arreglar mi código?
Gracias de antemano.
// Creando una nueva fila con la estructura de la tabla:
DataTable table = new DataTable();
DataRow row = table.NewRow();
table.Rows.Add(row);
// Dando valores a las columnas de la fila (se supone que esta fila tiene 28 columnas):
for (int i = 0; i < 28; i++)
{
row[i] = i.ToString();
}
Esto funciona para mí:
var table = new DataTable();
table.Rows.Add();
Puede probar con este código, basado en el Rows.Add method
DataTable table = new DataTable();
DataRow row = table.NewRow();
table.Rows.Add(row);
Enlace: https://msdn.microsoft.com/en-us/library/9yfsd47w.aspx
Si necesita copiar de otra tabla, primero debe copiar la estructura:
DataTable copyDt = existentDt.Clone();
copyDt.ImportRow(existentDt.Rows[0]);
Tienes que agregar la fila explícitamente a la tabla
table.Rows.Add(row);
try table.Rows.add(row);
después de tu declaración.
Encontré los ejemplos dotnetperls en DataRow
muy útiles. Fragmento de código para la nueva DataTable
desde allí:
static DataTable GetTable()
{
// Here we create a DataTable with four columns.
DataTable table = new DataTable();
table.Columns.Add("Weight", typeof(int));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Breed", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
// Here we add five DataRows.
table.Rows.Add(57, "Koko", "Shar Pei", DateTime.Now);
table.Rows.Add(130, "Fido", "Bullmastiff", DateTime.Now);
table.Rows.Add(92, "Alex", "Anatolian Shepherd Dog", DateTime.Now);
table.Rows.Add(25, "Charles", "Cavalier King Charles Spaniel", DateTime.Now);
table.Rows.Add(7, "Candy", "Yorkshire Terrier", DateTime.Now);
return table;
}
GRV.DataSource = Class1.DataTable;
GRV.DataBind();
Class1.GRV.Rows[e.RowIndex].Delete();
GRV.DataSource = Class1.DataTable;
GRV.DataBind();