J'ai un DataTable qui a 4 colonnes. Je veux changer la valeur de la 3ème colonne en "0". Ci-dessous, mon DataTable.
ID Name Value Type
---- ---- ----- -----
1 Sam 250 2
2 Rai 324 3
3 Tim 985 8
Mon résultat souhaité devrait être comme ci-dessous:
ID Name Value Type
---- ---- ----- ------
1 Sam 0 2
2 Rai 0 3
3 Tim 0 8
Comment y parvenir sans boucler? Toutes les suggestions s'il vous plaît.
Que dis-tu de ça? Sans boucle ....
static void Main(string[] args)
{
DataTable table = new DataTable();
table.Columns.Add("col1");
table.Columns.Add("col2");
table.Rows.Add(new object[] { "1", "1" });
table.Rows.Add(new object[] { "1", "1" });
table.Rows.Add(new object[] { "1", "1" });
table.Rows.Add(new object[] { "1", "1" });
foreach (DataRow row in table.Rows)
Console.WriteLine(row["col2"].ToString());
Console.WriteLine("***************************************");
DataColumn dc = new DataColumn("col2");
dc.DataType = typeof(int);
dc.DefaultValue = 0;
table.Columns.Remove("col2");
table.Columns.Add(dc);
foreach (DataRow row in table.Rows)
Console.WriteLine(row["col2"].ToString());
Console.ReadKey();
}
DataRow[] rows = myDataTable.Select("id = 'myIdValue');
//If you don't want to select a specific id ignore the parameter for select.
for(int i = 0; i < rows.Length; i ++)
{
rows[i]["value"] = 0;
}
si vous connaissez l'ID, vous pouvez simplement le filtrer à l'aide de Sélectionner ou Rechercher (vous ne vous souvenez pas exactement, mais je pense qu'il s'agit de Sélectionner). Une fois que vous avez la ligne, vous pouvez affecter des valeurs de colonne.
Je suis sûr qu'il existe également une meilleure méthode orientée LINQ, mais cette approche de la vieille école ADO.NET/System.Data devrait quand même fonctionner.
Vous pouvez utiliser un truc simple ici. Supprimer la ligne et l'ajouter à la table.
dt.Columns.Remove("Value");
dt.Columns.Add("Value", type(System.Int32), 0);