41 messaggi dal 18 dicembre 2007
Ciao a tutti, ho scritto il seguente codice sulla base di un paio di esempi trovati sul web... non mi da alcun errore, ma neanche mi scrive sul db. Mi sapreste dare una mano cortesemente?
L'array sArr(,) é pieno, mi son fatto buttare a schermo i result e ci sono 254 posizioni piene di dati.
Sbaglio sicuramente qualcosa io perché é la prima volta che mi interfaccio con un db in questo modo. Grazie per un help.

AGGIORNAMENTO: Ho anche provato a sostituire la parte finale di codice prima così...
adapter.UpdateCommand = builder.GetUpdateCommand
e poi così...
adapter.InsertCommand = builder.GetInsertCommand
ma nada di nada, non scrive su db e non da errori.
Mi son fatto anche buttare a schermo alcuni valori delle new rows e i dati sono presenti; però ci sono i dati delle newrow e non quelli originariamente presenti nella tabella.



Dim strQ As String = "SELECT tbl_Wandetail.* FROM tbl_Wandetail"

db2Open()
Dim adapter As New OleDb.OleDbDataAdapter
adapter.SelectCommand = New OleDb.OleDbCommand(strQ, cnc)
Dim builder As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(adapter)

Dim tbl As New DataTable
adapter.Fill(tbl)


Dim dr(sArr.GetUpperBound(0)) As DataRow

tbl.Columns.Item(0).ColumnName = "ID_Wandetail"
Dim dc0 As DataColumn = tbl.Columns.Item(0)

tbl.Columns.Item(1).ColumnName = "wanIP"
Dim dc1 As DataColumn = tbl.Columns.Item(1)

tbl.Columns.Item(2).ColumnName = "Redundant"
Dim dc2 As DataColumn = tbl.Columns.Item(2)

tbl.Columns.Item(3).ColumnName = "Description"
Dim dc3 As DataColumn = tbl.Columns.Item(3)

tbl.Columns.Item(4).ColumnName = "nodeTypeId"
Dim dc4 As DataColumn = tbl.Columns.Item(4)

tbl.Columns.Item(5).ColumnName = "wanListId"
Dim dc5 As DataColumn = tbl.Columns.Item(5)

tbl.Columns.Item(0).DataType = GetType(Integer)
tbl.Columns.Item(0).Unique = True
tbl.Columns.Item(0).AutoIncrement = True
tbl.Columns.Item(1).DataType = GetType(String)
tbl.Columns.Item(2).DataType = GetType(Boolean)
tbl.Columns.Item(3).DataType = GetType(String)
tbl.Columns.Item(4).DataType = GetType(Integer)
tbl.Columns.Item(5).DataType = GetType(Integer)

For z = 0 To sArr.GetUpperBound(0) Step 1
dr(z) = tbl.NewRow
dr(z)(dc1) = sArr(z, 0).ToString()
If sArr(z, 1) = "R" Then
dr(z)(dc2) = True
Else
dr(z)(dc2) = False
End If
dr(z)(dc3) = ""
dr(z)(dc4) = 2
dr(z)(dc5) = ID_wl
Next

builder.GetUpdateCommand()
adapter.Update(tbl)
adapter.Dispose()
db2Close()

Modificato da Lybra1983 il 26 novembre 2009 13.55 -
Modificato da Lybra1983 il 26 novembre 2009 14.05 -
non so dove tu abbia trovato quel codice, ma in un'applicazione ASP.NET non si usa DataSet/Adapter/compagnia perchè non ha senso.

nel tuo caso, lo risolvi molto più facilmente con una query normalissima ed un OleDbCommand, anzichè con questo "casino".

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.