Aggiungere dati nel Dataset

venerdì 10 novembre 2006 - 16.34

Leonefragile Profilo | Newbie

Salve a tutti, sono un principiante di c# e ho bisogno di manipolare un dataset:
ho già in input il dataset, ma devo aggiungere una colonna e popolarla con i miei dati;
la colonna sono riuscito ad aggiungerla, ma non so proprio come inserirci dentro i miei dati.
Questo è il mio metodo che mi aggiunge la colonna:
--------------------------------------------------------
public DataSet addColumnDataSet(DataSet dataSet)
{
IEnumerator table_Enumerator = dataSet.Tables.GetEnumerator();
table_Enumerator.MoveNext();
//table_Enumerator.MoveNext();
DataTable table = null;
String stringa="";
DataColumn nuova_colonna = new DataColumn("nuova_colonna",stringa.GetType());
while (table_Enumerator.MoveNext())
{
table = (DataTable)table_Enumerator.Current;
table.Columns.Add("nuova_colonna", stringa.GetType());
???
}
return dataSet;
}
--------------------------------------------------------
Come posso fare popolare la colonna?
Grazie mille.

Michele Pinto

Cteniza Profilo | Guru

1) Ne imposti il valore come fosse una qualsiasi delle altre colonne :)
2) fai un ciclo sulle righe e imposti il valore della colonna aggiunta

Leonefragile Profilo | Newbie

>1) Ne imposti il valore come fosse una qualsiasi delle altre
>colonne :)
>2) fai un ciclo sulle righe e imposti il valore della colonna
>aggiunta

E come faccio ad impostare il valore di una colonna ed aggiornare il dataset?
Ho provato così:

IEnumerator table_Enumerator = dataset.Tables.GetEnumerator();
IEnumerator row_Enumerator = null;
IEnumerator column_Enumerator = null;
DataTable table = null;
DataRow row = null;
DataColumn column = null;
//ciclo di lettura delle tabelle
table_Enumerator.MoveNext();
while (table_Enumerator.MoveNext())
{
//legge la tabella
table = (DataTable)table_Enumerator.Current;
//preleva le righe della tabella
column_Enumerator = table.Columns.GetEnumerator();
//ciclo di lettura delle colonne
int i = 0;
while (column_Enumerator.MoveNext())
{
//preleva le righe della tabella
row_Enumerator = table.Rows.GetEnumerator();
row = (DataRow)row_Enumerator.Current;
column = (DataColumn)column_Enumerator.Current;
//ciclo di lettura delle righe
String dato;
while (row_Enumerator.MoveNext())
{
row = (DataRow)row_Enumerator.Current;
row.ItemArray.SetValue("Stringa da inserire",i);

}
i++;
}
}
return dataset;

Ma così modifico solamente la riga, ma non so come modificare anche il dataset.
Non ho trovato molti metodi per 'giocare' coi dataset e l'unica soluzione trovata è questa.
Confido in aiuti. Grazie cmq per la risposta.

Michele Pinto.
Tutto ciò che è computabile è computabile

Cteniza Profilo | Guru

se vuoi inserire delle nuove righe:
DataRow dr = myDataSet.Tables["mytable"].NewRow();
dr["campo1"] = myValore
dr["campon"] = ....
myDataSet.Tables.Rows.Add(dr)
..
modifica righe
foreach (DataRow dr in myDataSet.Tables.Rows)
{
dr["campo"] = ...
}

Leonefragile Profilo | Newbie

Ok riuscito.
Era banale ma col c# sono un principiante ancora.
Grazie davvero.

Michele Pinto
Tutto ciò che è computabile è computabile
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5