PB command builder

martedì 19 luglio 2005 - 14.18

Babi Profilo | Junior Member

Ciao a tutti, devo caricare una dagrid e gestire in automatico con i commanbuilder l'inserimenti, l'aggionamento e la delete.
Ho provato con questo codice, ma sull'istruzione
daUser.DeleteCommand = cmdBuilder.GetDeleteCommand()
mi ritorna questo errore:
: Generazione SQL dinamica per DeleteCommand non supportata per un SelectCommand che non restituisce informazioni di colonne chiave.

Mi date una mano? grazie




strsql = "SELECT * from mail_accessi"

cnUser.Open()
daUser = _
New System.Data.OleDb.OleDbDataAdapter(strsql, cnUser)
daUser.FillSchema(dsUser, SchemaType.Source, "utenti")
daUser.Fill(dsUser, "utenti")

' dsUser.Tables("utenti").PrimaryKey = New DataColumn() {dsUser.Tables("utenti").Columns("user_id")}

Dim cmdBuilder As New OleDb.OleDbCommandBuilder(daUser)
daUser.InsertCommand = cmdBuilder.GetInsertCommand()
daUser.DeleteCommand = cmdBuilder.GetDeleteCommand()
daUser.UpdateCommand = cmdBuilder.GetUpdateCommand()
cnUser.Close()
Else
dsUser.Tables("utenti").Clear()
cnUser.Open()
daUser.Fill(dsUser, "utenti")
cnUser.Close()
End If
gridAccessi.DataMember = "utenti"

Cteniza Profilo | Guru

L'errore dice già tutto!
I casi più grossolani:
- la tua select è su una tabella senza chiave primaria univoca
- la tua select è su una tabella e non recuperi uno o piùi campi chiave
- la tua select estrae i dati da più tabelle
- la tua select usa dei "join"
In tutti questi casi il commandbuilder non funziona.
Niente paura.
Puoi proseguire benissimo impostando "a mano" tutti i comandi e i parametri del dataadapter senza usare il commandbuilder.



Babi Profilo | Junior Member

Hai proprio ragione.
la mia select è su una tabella senza chiave primaria univoca

non sapevo che il command builder avesse questi limiti.
:)
Grazie.



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