2013-06-12 3 views
1
Imports System.Data 
Imports System.Data.SqlClient 

Public Class Reservation 
    Dim sqlConn As SqlConnection 

Private Sub Reservation_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    sqlConn = New SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|EasyReserv.mdf;Integrated Security=True") 
End Sub 

Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click 
    Dim addSQL As String = "INSERT INTO CUSTOMER ( customerID, name, contactNumber, email) VALUES (1, 'James', '012444444','[email protected]')" 
    Dim addCmd As SqlCommand = New SqlCommand(addSQL, sqlConn) 
    sqlConn.Open() 
    addCmd.ExecuteNonQuery() 
    sqlConn.Close() 
End Sub 

End Class 

Il n'y a pas d'erreur dans le code, et ExecuteNonQuery renvoie également 1, mais il n'y a aucun enregistrement dans ma base de données.Impossible de mettre à jour SQL Server avec VB.net

+0

Qu'est-ce qui se passe si vous changez le type de données de 'customerID' pour ajouter' identity', puis interroger 'SCOPE_IDENTITY()' immédiatement après avoir fait l'insertion? – Dai

+0

la base de données n'est toujours pas mise à jour – user2477598

+1

Comment vérifiez si l'enregistrement est inséré ou non? Regardez-vous votre table en utilisant Server Explorer dans VS IDE? Si oui, la chaîne de connexion utilisée par Server Explorer est la même chaîne de connexion utilisée par votre application? – Steve

Répondre

0

Cette situation est assez courante. Votre chaîne de connexion est AttachDbFilename=|DataDirectory|EasyReserv.mdf.
Cela signifie que le fichier MDF, utilisé par votre programme, se trouve dans le dossier pointé par la chaîne de substitution | DataDirectory | qui est dossier BIN \ DEBUG ou BIN selon si votre application est une application ASP.NET ou une application WinForms. (See Where is DataDirectory). L'insertion fonctionne comme prévu, mais vous avez votre fichier MDF connecté par l'Explorateur de serveur dans un autre répertoire (généralement le dossier du projet). Donc, si vous regardez la base de données avec l'explorateur de serveur, vous ne voyez pas l'enregistrement ajouté. Vérifiez également si la propriété Copy To Output Directory pour le fichier MDF est réglé sur Never ou Copy if Newer, sinon vous risquez de perdre toutes les modifications apportées par votre programme à chaque redémarrage de votre application en cours de débogage dans Visual Studio

+0

Merci beaucoup, problème résolu. – user2477598

-1

Avant de fermer SqlConn, essayez d'extraire le client inséré à l'aide de SqlDataReader. Peut-être que vous vérifiez si l'enregistrement est inséré ou non dans la mauvaise base de données.

0
Try 
     If con.State = ConnectionState.Open Then con.Close() 
     con.Open() 
     global_command = New SqlCommand("UPDATE products_tbl set running_no = '" & txt_running.Text & "' where template_code = 'n'and prod_no = '" & txt_product.Text & "'", con) 
     global_command.ExecuteNonQuery() 
     global_command.Dispose() 

     MsgBox("Successfully updated!", MsgBoxStyle.Information, "Message") 
     where = vbNullString 

    Catch ex As Exception 
     MsgBox("Trace No 4: System Error or Data Error!" + Chr(13) + ex.Message + Chr(13) + "Please Contact Your System Administrator!", vbInformation, "Message") 
    End Try 


End Sub 
Questions connexes