Problema con l' esempio di "Approccio ai database"

Vins

Moderatore
Membro dello Staff
MOD
28 Lug 2009
238
19
0
Ciao,

il messaggio d'errore viene riportato quando la variabile risputente è diversa da 1.

L'assegnazione del valore a tale variabile avviene con l'istruzione

risputente=objcomm.ExecuteNonQuery()

quindi il messaggio d'errore viene dato se non si riesce ad effettuare l'inserimento sul database e non soltanto se i campi nome o cognome sono vuoti.

L'inserimento potrebbe fallire a causa della stringa di connessione (stringaconn) non impostata correttamente (controlla il percorso del file mdb).
 

mrzpro

Nuovo Utente
8 Nov 2009
11
0
1
Nulla da fare, il DB è nella directory del percorso ma da sempre lo stesso errore. Non è che per caso non gestisce i DB generati con Access 2007?
 

Vins

Moderatore
Membro dello Staff
MOD
28 Lug 2009
238
19
0
Beh in effetti questo è un particolare parecchio importante.....

Il modo di gestire la stringa di connessione per i database access 2007 è leggermente diverso

' Access 2003:
Dim stringaconn As String = _
"Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & _
"C:\test\database.mdb"

' Access 2007:
Dim stringaconn As String = _
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\test\database.accdb;" & _
"Persist Security Info=False;"

ti faccio notare in particolare che cambia anche l'estensione del file (in rosso)

Se dovessi avere problemi nell'impostare la stringa di connessione ti consiglio di consultare il seguente sito

http://www.connectionstrings.com/
 

mrzpro

Nuovo Utente
8 Nov 2009
11
0
1
Questo è il messaggio di errore che ricevo ora sia con la sintassi per 2003 che con 2007...

Errore 1 Impossibile scrivere nel file di output 'C:\GestioneAnimatori\GestioneAnimatori\obj\Debug\GestioneAnimatori.exe': Impossibile accedere al file. Il file è utilizzato da un altro processo. . GestioneAnimatori

e questo è il listato:
Imports System.Data.OleDb

Public Class ins_dati

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form1.Visible = True
Me.Visible = False
End Sub


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim objconn As OleDbConnection
Dim stringaconn As String
Dim stringasql As String
Dim objcomm As OleDbCommand

'Access 2007
' stringaconn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
' stringaconn = stringaconn & "C:\GestioneAnimatori\Animatori.mdb;"
' stringaconn = stringaconn & " Persist Security Info=False;"

' Access 2003:
stringaconn = "Provider=Microsoft.JET.OLEDB.4.0;Data Source="
stringaconn = stringaconn & "C:\GestioneAnimatori\Animatori.mdb"
objconn = New OleDbConnection(stringaconn)
objconn.Open()
stringasql = "Insert into Dati(cognome,nome) values('"
stringasql = stringasql & Me.txt_cognome.Text & "'" & ","
stringasql = stringasql & "'" & Me.txt_nome.Text & "'" & ")"
objcomm = New OleDbCommand(stringasql, objconn)
Dim risputente As Integer
Try
risputente = objcomm.ExecuteNonQuery()
If risputente = 1 Then
MsgBox("Inserimento effettuato con successo")
objconn.Close()
Me.txt_cognome.Text = ""
Me.txt_nome.Text = ""
Me.txt_cognome.Focus()
End If
Catch es As Exception
MsgBox("Errore: il campo cognome e/o nome sono vuoti")
objconn.Close()
End Try
End Sub
End Class
 

mauroc66

Nuovo Utente
6 Mag 2010
2
0
0
Stesso problema

Ciao a tutti sono nuovo in questo forum.

errore che dice che il campo nome/cognome è vuoto....
è stato risolto?
 

mauroc66

Nuovo Utente
6 Mag 2010
2
0
0
Risolto.
ho inserito in nome della tabella in modo errato:hammer:

adesso funziona benissimo:)

Ciao