web-dev-qa-db-fra.com

Comment créer un DataTable en C # et comment ajouter des lignes?

Comment créer un DataTable en C #?

J'ai fait comme ça:

 DataTable dt = new DataTable();
 dt.clear();
 dt.Columns.Add("Name");
 dt.Columns.Add("Marks");

Comment voir la structure de DataTable?

Maintenant, je veux ajouter ravi pour Name et 5 pour Marks. Comment puis-je faire ceci?

168
Cute

Voici le code:

DataTable dt = new DataTable(); 
dt.Clear();
dt.Columns.Add("Name");
dt.Columns.Add("Marks");
DataRow _ravi = dt.NewRow();
_ravi["Name"] = "ravi";
_ravi["Marks"] = "500";
dt.Rows.Add(_ravi);

Pour voir la structure ou plutôt pour la reformuler en tant que schéma, vous pouvez l'exporter dans un fichier XML en procédant comme suit.

Pour exporter uniquement le schéma/la structure, procédez comme suit:

dt.WriteXMLSchema("dtSchemaOrStructure.xml");

De plus, vous pouvez également exporter vos données:

dt.WriteXML("dtDataxml");
226

Vous pouvez également passer dans un tableau d'objets, comme ceci:

DataTable dt = new DataTable();
dt.Clear();
dt.Columns.Add("Name");
dt.Columns.Add("Marks");
object[] o = { "Ravi", 500 };
dt.Rows.Add(o);

Ou même:

dt.Rows.Add(new object[] { "Ravi", 500 });
63
James McConnell
// Create a DataTable and add two Columns to it
DataTable dt=new DataTable();
dt.Columns.Add("Name",typeof(string));
dt.Columns.Add("Age",typeof(int));

// Create a DataRow, add Name and Age data, and add to the DataTable
DataRow dr=dt.NewRow();
dr["Name"]="Mohammad"; // or dr[0]="Mohammad";
dr["Age"]=24; // or dr[1]=24;
dt.Rows.Add(dr);

// Create another DataRow, add Name and Age data, and add to the DataTable
dr=dt.NewRow();
dr["Name"]="Shahnawaz"; // or dr[0]="Shahnawaz";
dr["Age"]=24; // or dr[1]=24;
dt.Rows.Add(dr);

// DataBind to your UI control, if necessary (a GridView, in this example)
GridView1.DataSource=dt;
GridView1.DataBind();
33
shahnawaz

Pour ajouter une ligne:

DataRow row = dt.NewRow();
row["Name"] = "Ravi";
row["Marks"] = 500;
dt.Rows.Add(row);

Pour voir la structure:

Table.Columns
23
djdd87

Vous pouvez écrire une ligne en utilisant DataRow.Add (valeurs d'objet []) au lieu de quatre lignes.

dt.Rows.Add("Ravi", "500");

Lorsque vous créez un nouvel objet DataTable, il semble que non doit ClearDataTable dans l'instruction suivante. Vous pouvez également utiliser DataTable.Columns.AddRange pour ajouter des colonnes avec une instruction on. Le code complet serait.

DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("Name"), new DataColumn("Marks") });     
dt.Rows.Add("Ravi", "500");
16
Adil

Create DataTable:

DataTable MyTable = new DataTable(); // 1
DataTable MyTableByName = new DataTable("MyTableName"); // 2

Ajouter une colonne à la table:

 MyTable.Columns.Add("Id", typeof(int));
 MyTable.Columns.Add("Name", typeof(string));

Ajouter une ligne à la méthode DataTable 1:

DataRow row = MyTable.NewRow();
row["Id"] = 1;
row["Name"] = "John";
MyTable.Rows.Add(row);

Ajouter une ligne à la méthode DataTable 2:

MyTable.Rows.Add(2, "Ivan");

Ajouter une ligne à la méthode DataTable 3 (Ajouter une ligne d'une autre table avec la même structure):

MyTable.ImportRow(MyTableByName.Rows[0]);

Ajouter une ligne à la méthode DataTable 4 (Ajouter une ligne d'une autre table):

MyTable.Rows.Add(MyTable2.Rows[0]["Id"], MyTable2.Rows[0]["Name"]);

Ajouter une ligne à la méthode DataTable 5 (Insérer une ligne à un index):

MyTable.Rows.InsertAt(row, 8);
14
Hamed Naeemaei

Vous pouvez ajouter une ligne sur une seule ligne

    DataTable table = new DataTable();
    table.Columns.Add("Dosage", typeof(int));
    table.Columns.Add("Drug", typeof(string));
    table.Columns.Add("Patient", typeof(string));
    table.Columns.Add("Date", typeof(DateTime));

    // Here we add five DataRows.
    table.Rows.Add(25, "Indocin", "David", DateTime.Now);
    table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
    table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
    table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
    table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
12
Diego
DataTable dt=new DataTable();
Datacolumn Name = new DataColumn("Name");
Name.DataType= typeoff(string);
Name.AllowDBNull=false; //set as null or not the default is true i.e null
Name.MaxLength=20; //sets the length the default is -1 which is max(no limit)
dt.Columns.Add(Name);
Datacolumn Age = new DataColumn("Age", typeoff(int));`

dt.Columns.Add(Age);

DataRow dr=dt.NewRow();

dr["Name"]="Mohammad Adem"; // or dr[0]="Mohammad Adem";
dr["Age"]=33; // or dr[1]=33;
dt.add.rows(dr);
dr=dt.NewRow();

dr["Name"]="Zahara"; // or dr[0]="Zahara";
dr["Age"]=22; // or dr[1]=22;
dt.rows.add(dr);
Gv.DataSource=dt;
Gv.DataBind();
10
Mohammed Shafi Adem
DataTable dt=new DataTable();
DataColumn Name = new DataColumn("Name",typeof(string)); 

dt.Columns.Add(Name);
DataColumn Age = new DataColumn("Age", typeof(int));`

dt.Columns.Add(Age);

DataRow dr=dt.NewRow();

dr["Name"]="Kavitha Reddy"; 
dr["Age"]=24; 
dt.add.Rows(dr);
dr=dt.NewRow();

dr["Name"]="Kiran Reddy";
dr["Age"]=23; 
dt.Rows.add(dr);
Gv.DataSource=dt;
Gv.DataBind();
8
kavitha Reddy

Vous devez pour cela ajouter des datarows à votre datatable.

// Creates a new DataRow with the same schema as the table.
DataRow dr = dt.NewRow();

// Fill the values
dr["Name"] = "Name";
dr["Marks"] = "Marks";

// Add the row to the rows collection
dt.Rows.Add ( dr );
8
rahul

Le plus simple est de créer un DataTable dès maintenant

DataTable table = new DataTable
{
    Columns = {
        "Name", // typeof(string) is implied
        {"Marks", typeof(int)}
    },
    TableName = "MarksTable" //optional
};
table.Rows.Add("ravi", 500);
7
naveen

En plus des autres réponses.

Si vous contrôlez la structure du DataTable, il existe un raccourci pour ajouter des lignes:

// Supposons que vous ayez une table de données définie comme dans votre exemple nommé dt dt.Rows.Add ("Name", "Marks");

La méthode DataRowCollection.Add () a une surcharge qui prend un tableau param d'objets. Cette méthode vous permet de transmettre autant de valeurs que nécessaire, mais elles doivent être dans le même ordre que les colonnes définies dans la table.

Ainsi, bien que ce soit un moyen pratique d’ajouter des données de ligne, son utilisation peut être risquée. Si la structure de la table change, votre code échouera.

4
Rune Grimstad

Question 1: Comment créer un DataTable en C #?

Réponse 1:

DataTable dt = new DataTable(); // DataTable created

// Add columns in your DataTable
dt.Columns.Add("Name");
dt.Columns.Add("Marks");

Remarque: Il n'est pas nécessaire de Clear() la DataTable après l'avoir créée.

Question 2: Comment ajouter des rangées?

Réponse 2: Ajouter une ligne:

dt.Rows.Add("Ravi","500");

Ajouter plusieurs lignes: utilisez la boucle ForEach

DataTable dt2 = (DataTable)Session["CartData"]; // This DataTable contains multiple records
foreach (DataRow dr in dt2.Rows)
{
    dt.Rows.Add(dr["Name"], dr["Marks"]);
}
1
5377037