Costruttore DataRow

martedì 29 maggio 2007 - 09.28

Teech Profilo | Expert

Stò creando una semplice tabella da inserire in un Dataset come di seguito riportato (forse il codice non è elegante quindi tutti i consigli sono bene accetti):

Dim tbl As New DataTable("Tabella1") Dim clm As DataColumn clm = New DataColumn("Campo1") clm.AllowDBNull = False tbl.Columns.Add(clm) clm.Dispose() clm = New DataColumn("Campo2") clm.AllowDBNull = False tbl.Columns.Add(clm) clm.Dispose() clm = New DataColumn("Campo3") clm.AllowDBNull = False tbl.Columns.Add(clm) clm.Dispose() Dim row As New DataRow '***ERRORE*** row("Campo1") = "" row("Campo2") = "" row("Campo3") = "" tbl.Rows.Add(row)
Nella riga che ho commentato mi viene restituito un errore già a design time:

Errore 1 "System.Data.DataRow.Protected Sub New(builder As System.Data.DataRowBuilder)" non è accessibile in questo contesto perché è "Protected".

Cosa significa? dove sbaglio? Non capisco proprio... Perchè il costruttore così non funziona?
Forse è importante segnalare che il codice è in una Try...Catch in caso di eccezione (quindi sulla Catch), anche se non capisco cosa possa centrare.

Grazie
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

0v3rCl0ck Profilo | Guru

Ciao,

un DataRow creato da nuovo, non ha struttura e quindi non è fattibile che esso venga aggiunto in un DataTable, per fare questo devi modificare le due linee di codice da:

Dim row As New DataRow '***ERRORE***
row("Campo1") = ""
row("Campo2") = ""
row("Campo3") = ""

tbl.Rows.Add(row)

in:

Dim row As DataRow = tbl.NewRow()
row("Campo1") = ""
row("Campo2") = ""
row("Campo3") = ""

tbl.Rows.Add(row)


Spero di esserti stato di aiuto
Enjoy It

Teech Profilo | Expert

Gentilissimo!!!
Chiara anche la spiegazione...
Stò ancora studiando .NET e mi trovo a volte in difficoltà con questi "particolari".

Grazie ancora!!!

--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

0v3rCl0ck Profilo | Guru

bene, prego
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