[Visual Basic 2005] problema con pulsante salva dati database

venerdì 20 luglio 2007 - 21.35

platino Profilo | Junior Member

Salve a tutto il forum
Mi sono iscritto xké è da una settimana +/- ke cerco di risolvere questo problma.
Allora... Sto creando un programma in Visual Basic 2005 (uso visual studio 2005) che ho collegato a una sorgente dati, ke è un database di access kiamato Database1111.mdb.
Quando vado a premere il pulsante salva ke mi viene creato in automatico (in seguito al collegamento al database), se aggiungo un record, ok; se lo modifico o se lo elimino...errore.
Mi si seleziona una riga di codice e mi dice ke ci voule un datarow valido.
Ho provato a cambiare il codice con "AcceptChanges" e altri codici, ma niente.
Quello ke vi kiedo è un aiuto nel far funzionare il pulsante salva dati.

SSUPERPIPPO Profilo | Guru

Potresti essere un po' più preciso...?

puoi postare il codice della routine di salvataggio?

Ciao

platino Profilo | Junior Member

Public Class Form1

Private Sub Foglio1BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Foglio1BindingNavigatorSaveItem.Click
Me.Validate()
Me.Foglio1BindingSource.EndEdit()
Me.Database1111DataSet.AcceptChanges()
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: questa riga di codice carica i dati nella tabella 'Database1111DataSet.Foglio1'. È possibile spostarla o rimuoverla se necessario.
Me.Foglio1TableAdapter.Fill(Me.Database1111DataSet.Foglio1)

End Sub

End Class
_____platino_____

SSUPERPIPPO Profilo | Guru

In pratica hai fatto tutto con il Wizard.

In passato mi sono scontrato anch'io con questo problema.
Per prima cosa devi verificare che la tabella del database a cui ti colleghi sia dotata di chiave primaria.
Inoltre il Datasource non deve essere rappresentato da un Join di più tabelle.

...

Verifica e fammi sapere.

Ciao

platino Profilo | Junior Member

scusa l'ignoranza, ma nn so cosa sia il join
_____platino_____

SSUPERPIPPO Profilo | Guru

Hai controllato se esiste una chiave primaria per la tabella del database collegato?
Se sei collegato ad una sola tabella allora non ci sono problemi di join.

Attendo...

platino Profilo | Junior Member

sì, certo ke c'è la kiave primaria
_____platino_____

SSUPERPIPPO Profilo | Guru

Dovresti apportare delle modifiche al codice del pulsante Save:

>Private Sub Foglio1BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles >Foglio1BindingNavigatorSaveItem.Click
>Me.Validate()
>Me.Foglio1BindingSource.EndEdit()

Fin qui va bene

>Me.Database1111DataSet.AcceptChanges()

Al posto di questa istruzione devi richiamare il metodo update del DataAdapter

Me.Foglio1TableAdapter.Update(Me.DataBase1111DataSet)

> End sub

Così dovrebbe funzionare...

Scusa se insisto, è importante che ci sia una chiave primaria impostata nella tabella, divesamente non fuonzionerà mai.

Fammi sapere, ciao

Ale

platino Profilo | Junior Member

stai a sentire tra poco devo andare a adromire.
Io mi riconnetto domani mattina verso le 9 o le 10.
Cmq te rispondimi lo stesso e mi raccomando, non lasciare questo thread, se no potrei impazzire



P.S.: Bn Nt



SSUPERPIPPO Profilo | Guru

Non sò se domani potrò risponderti in diretta, sarò a lavoro.
Cumunque non ti preoccupare che non abbandono il thread, ti rispondo appena posso.

Buona notte, Ciao

Ale

platino Profilo | Junior Member

Sei un genio
Ora funziona.
Aspetta però, non scappare!!!
Ho un altro problema.
Voglio creare un pulsante e una textbox.

Quando inserisco un valore nella textbox e, dopo aver cliccato sul pulsante, mi deve venire fuori, negli appositi spazi, il valore corrispondente.
In pratica voglio creare un comando di ricerca per parole chiave nel database.

SSUPERPIPPO Profilo | Guru

>Sei un genio

Lusingato ma credo sia un pò esagerato!

>Ora funziona.

Mi fa piacere...

>Aspetta però, non scappare!!!
>Ho un altro problema.
>Voglio creare un pulsante e una textbox.

>Quando inserisco un valore nella textbox e, dopo aver cliccato sul pulsante, mi deve venire fuori, negli appositi spazi, il valore >corrispondente.
>In pratica voglio creare un comando di ricerca per parole chiave nel database.

Provo un attimo e arrivo...

SSUPERPIPPO Profilo | Guru

Allora...

poniamo che tu crei una textbox che chiameremo TxtRicerca e un pulsante che chiameremo CmdRicerca.
All'evento click del pulsante dovrai inserire questo codice:

Me.Foglio1BindingSource.Position = Me.Foglio1BindingSource.Find("NOMECAMPO", Me.TxtRicerca.Text)

Attenzione, dove ho scritto nome campo dovrai inserire il nome del campo del database su cui vuoi effettuare la ricerca.

In sintesi questa operazione imposta la proprietà Position del BindingSource all'indice ottenuto dal metodo find dello stesso BindingSource che accetta come parametri il campo di riferimento e la stringa da ricercare (che l'utente inserirà nella textbox).

Fammi sapere se funzia.

Ciao

Ale

SSUPERPIPPO Profilo | Guru

Precisazione!
Questa funzionalità effettua una ricerca per testo esatto e non funziona con i caratteri jolly.

Se devi effettuare una ricerca avanzate per parte del testo contenuto dovrai utilizzare la proprietà Filter del BindingManager:

' Imposta il filtro con i caratteri jolly %

Me.Foglio1BindingSource.Filter = "NOMECAMPO Like '%" + Me.TxtRicerca.Text + "%'"

' Forza un refresh del BindingManager

Me.TESTBindingSource.Position = Me.TESTBindingSource.Count
Me.TESTBindingSource.Position = 0

Prova anche questo... ciao
Ale

platino Profilo | Junior Member

6 L'UNICA PERSONA KE è RIUSCITA A RISOLVERE IL MIO PROBLEMA. 6 UN GENIO
PER ORA HAI RSOLTO I MIEI PROBLMEI E...NON LASCIARE MAI QUESTO FORUM XKé SE MI CAPITA DI AVERE ALTRI PROBLEMI DEL GENERE, CONTERò SU DI TE.


P.S.: SONO SICURO KE LAVORI ALLA MICROSOFT



_____platino_____

SSUPERPIPPO Profilo | Guru

E' stato un piacere.

Ciao

Alessandro

SSUPERPIPPO Profilo | Guru

Se puoi clicca su Accetta risposta così chiudiamo il thread.

Ciao

Ale
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