Aggiungere un datarow ad un datatable

lunedì 11 settembre 2006 - 09.45

gandalf_03_75 Profilo | Junior Member

Ciao a tutti sto cercando di aggiungere una datarow ad una datatable ma mi da questo maledetto errore


System.Data.DataRow.DataRow(System.Data.DataRowBuilder) is inaccessible due to its protect

Posto il codice:

------------------------------------------------------------------------------------------------

Connect cn = new Connect();
cn.OpenConnection();
DataSet ds;
ds = cn.GetDataset("sp_ListaGeneri");
System.Data.DataRow row = new System.Data.DataRow(); row["IdGenere"]="---"; row["Genere"] = "-1"; ds.Tables[0].Rows.Add(row);
ddlGeneri.DataSource = ds;
ddlGeneri.DataValueField = ds.Tables[0].Columns["IdGenere"].ColumnName.ToString();
ddlGeneri.DataTextField = ds.Tables[0].Columns["Genere"].ColumnName.ToString();
ddlGeneri.DataBind();

------------------------------------------------------------------------------------------------

Grazie
Per i paurosi il futuro resterà sconosciuto, per i deboli sarà irraggiungibile, per gli incoscienti offrirà nuove opportunità.

alx_81 Profilo | Guru

>Ciao a tutti

Ciao!

>sto cercando di aggiungere una datarow ad una datatable
>ma mi da questo maledetto errore
>
>
>System.Data.DataRow.DataRow(System.Data.DataRowBuilder) is inaccessible
>due to its protect
>
>Posto il codice:
>
>------------------------------------------------------------------------------------------------
>
>Connect cn = new Connect();
> cn.OpenConnection();
> DataSet ds;
> ds = cn.GetDataset("sp_ListaGeneri");
> System.Data.DataRow row = new System.Data.DataRow();
> row["IdGenere"]="---";
> row["Genere"] = "-1";
> ds.Tables[0].Rows.Add(row);
> ddlGeneri.DataSource = ds;
>ddlGeneri.DataValueField = ds.Tables[0].Columns["IdGenere"].ColumnName.ToString();
>ddlGeneri.DataTextField = ds.Tables[0].Columns["Genere"].ColumnName.ToString();
> ddlGeneri.DataBind();
>
>------------------------------------------------------------------------------------------------

Credo che il problema sia nella "new". Infatti non puoi utilizzare la seguente istruzione:
System.Data.DataRow row = new System.Data.DataRow();

Perchè in questo modo il datarow non sa da che colonne deve essere formato.
Devi ottenerlo dal metodo NewRow() del datatable, nel tuo caso:
// di seguito ottieni l'istanza al tuo datarow, contenente le righe definite nella datatable di indice 0
System.Data.DataRow row = ds.Tables[0].NewRow();
// poi prosegui
row["IdGenere"]="---";
row["Genere"] = "-1";
ds.Tables[0].Rows.Add(row);

Facci sapere!!
ciao!

>
>Grazie
Di nulla

Alx81 =)

http://blogs.dotnethell.it/suxstellino

gandalf_03_75 Profilo | Junior Member

Ciao Alex grazie mille adesso va bene ma visto che ci siamo ti faccio un'altra domanda.
Attualmente quella riga me l'aggiunge per ultima mentre io vorrei che fosse visualizzata come prima riga sulla dropdownlist. Mi sapresti aiutare??


Grazie ancora
Per i paurosi il futuro resterà sconosciuto, per i deboli sarà irraggiungibile, per gli incoscienti offrirà nuove opportunità.

alx_81 Profilo | Guru

>Attualmente quella riga me l'aggiunge per ultima mentre io vorrei
>che fosse visualizzata come prima riga sulla dropdownlist. Mi
>sapresti aiutare??

row["IdGenere"]="---";
row["Genere"] = "-1";
//inserisco in testa
ds.Tables[0].Rows.InsertAt(row,0);


>Grazie ancora
Di nulla!


Alx81 =)

http://blogs.dotnethell.it/suxstellino

gandalf_03_75 Profilo | Junior Member

Che dire .... grazie e spero di poter ricambiare.



Per i paurosi il futuro resterà sconosciuto, per i deboli sarà irraggiungibile, per gli incoscienti offrirà nuove opportunità.

alx_81 Profilo | Guru

No problem!!

Ricambia accettando la risposta, così chiudiamo il thread
Alx81 =)

http://blogs.dotnethell.it/suxstellino

Luigi3 Profilo | Junior Member

Scusate se riapro questo 3d, ma la mia domanda e' inerente l'argomento:
se io volessi costruirmi interamente a mano un dataset, come dovrei fare?
Nel senso che vorrei impostare io il contenuto delle singole righe (e quindi delle singole colonne di ogni riga)?

Grazie

alx_81 Profilo | Guru

>Scusate se riapro questo 3d, ma la mia domanda e' inerente l'argomento:
>se io volessi costruirmi interamente a mano un dataset, come
>dovrei fare?
passo passo.. segui la scala:

--> nuovo dataset
--> nuovi datatables
--> nuove colonne per i datatables
--> nuove eventuali relazioni
--> popolamenti righe per i datatable..

Qui di seguito ti scrivo un esempio di creazione di un dataset con due tabelle legate:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

>
>Grazie
di nulla!

ps: magari la prossima volta, apri un altro 3d, così se la gente cerca il problema, è più facile arrivare alla soluzione di quello

Alx81 =)

http://blogs.dotnethell.it/suxstellino

alx_81 Profilo | Guru

>Scusate se riapro questo 3d, ma la mia domanda e' inerente l'argomento:
>se io volessi costruirmi interamente a mano un dataset, come
>dovrei fare?
>Nel senso che vorrei impostare io il contenuto delle singole
>righe (e quindi delle singole colonne di ogni riga)?
>
>Grazie
Anche se è lo stesso thread, se lo ritieni opportuno, accetta che chiudiamo
Alx81 =)

http://blogs.dotnethell.it/suxstellino

Luigi3 Profilo | Junior Member

Questo nn l'ho aperto io, purtroppo nn posso accettartela anche se e' stata utilissima.
Ho aperto un'altra discussione per continuare questa discussione.

alx_81 Profilo | Guru

>Questo nn l'ho aperto io, purtroppo nn posso accettartela anche
>se e' stata utilissima.
>Ho aperto un'altra discussione per continuare questa discussione.
Scusa non avevo notato
allora ciao!

Alx81 =)

http://blogs.dotnethell.it/suxstellino

Luigi3 Profilo | Junior Member

Non riesco ad aggiungere un post alla mia discussione. Lo aggiungo qui:
Se volessi creare una html table da codice in modo da impostare riga per riga tutta la tabella come dovrei fare?
Questo anche perche' mi servono delle righe di intestazione che raggruppino piu' colonne.
Il risultato finale dovrebbe venire cosi':

300x232 41Kb


Poi i contenuti li recupero da una query, e li imposto cella per cella.

Grazie x l'aiuto!

alx_81 Profilo | Guru

>Se volessi creare una html table da codice in modo da impostare
>riga per riga tutta la tabella come dovrei fare?
ciao, devi utilizzare l'oggetto server Table e armarti di pazienza .

' tabella Dim t As New Table() ' prima riga Dim tr As New TableRow() ' prima colonna Dim tc As New TableCell() ' definisco il bordo della tabella t.BorderStyle = BorderStyle.Solid t.BorderWidth = 1 ' prima cella, prima riga tc.Text = "1" tc.BorderStyle = BorderStyle.Solid tc.BorderWidth = 1 tr.Cells.Add(tc) ' seconda cella, prima riga tc = New TableCell() tc.Text = "2" tc.BorderStyle = BorderStyle.Solid tc.BorderWidth = 1 tr.Cells.Add(tc) ' terza cella, prima riga tc = New TableCell() tc.Text = "3" tc.BorderStyle = BorderStyle.Solid tc.BorderWidth = 1 tr.Cells.Add(tc) ' aggiungo la prima riga t.Rows.Add(tr) ' seconda riga tr = New TableRow() ' prima cella, seconda riga tc = New TableCell() tc.Text = "4" tc.BorderStyle = BorderStyle.Solid tc.BorderWidth = 1 tr.Cells.Add(tc) ' seconda cella, seconda riga, colspan = 2 tc = New TableCell() tc.ColumnSpan = 2 tc.Text = "5" tc.BorderStyle = BorderStyle.Solid tc.BorderWidth = 1 tr.Cells.Add(tc) ' aggiungo la riga t.Rows.Add(tr) ' aggiungo la tabella alla pagina Me.Controls.Add(t)
>
>Grazie x l'aiuto!
di nulla!
Alx81 =)

http://blogs.dotnethell.it/suxstellino
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