J'ai parcouru les pages MSDN pour apprendre ADO.Net en utilisant les commandes. Je suis capable de lire en utilisant l'exemple de code affiché ici. Mais quand j'ai essayé d'utiliser le code de modification ci-dessous, l'insertion n'intervient pas. Je ne suis pas capable de comprendre pourquoi. Quelqu'un peut-il me dire ce qui ne va pas avec ce code?ADO.Net - Pourquoi l'insertion ne se passe-t-elle pas?
string connectionString = "A_VALID_CONNECTION_STRING";
string commandText =
"INSERT INTO Contacts (FullName, Mobile) VALUES ('Pierce Brosnan', '1800-007')";
SqlConnection connection = new SqlConnection(connectionString);
try
{
connection.Open();
SqlCommand command = new SqlCommand(commandText, connection);
Console.WriteLine(command.ExecuteNonQuery());
connection.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Modifier
Aucune exception est levée.
L'ExecuteNonQuery() qui est censé retourner le numéro. des lignes affectées renvoie
1
.Environnement: Visual C# 2010 Express | SQL Server 2008 Express | Windows 7 Ultimate 32 bits.
Mise à jour
Auparavant, je travaillais avec un fichier MDF présent dans le projet. Il était, je suppose, automatiquement attaché à l'instance du serveur SQL chaque fois que le projet s'exécutait. C'est quand j'ai eu le problème. La chaîne de connexion contenait des informations sur la connexion d'un fichier de base de données. J'ai supprimé le SQL Server 2008 Express installé avec Visual C# 2010 Express. Également supprimé le fichier MDF du projet.
I J'ai téléchargé et installé séparément SQL Server 2008 Express avec Management Studio Express.
Créé une nouvelle base de données dans le studio de gestion.
Utilisé un type différent de chaîne de connexion pour utiliser la base de données dans le serveur.
Maintenant INSERT fonctionne!
P.S. Je suppose que j'aurais dû mentionner que j'avais un scénario de fichier de base de données attach. Vraiment désolé pour ça.
Une exception est-elle levée? –
Non. Aucune exception n'est levée (ou imprimée). La Console.WriteLine imprime '1'. Mais quand je vois la table de base de données, rien n'est inséré. Je regarde les données en utilisant l'explorateur de base de données dans C# 2010 Express IDE. –
C'est vraiment étrange. Votre code a l'air bien et si «1» est imprimé cela signifie qu'une rangée a été insérée. –