Problème de mise à jour de la base de donnée C#
Thomasheros
Messages postés
2
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai un assez gros problème, je veux pouvoir mettre à jour ma base de données avec UPDATE. Lorsque le programme est exécuté et que je modifie une donnée il n'y a pas de problème j'arrive à la retrouver dans le programme. Par contre lorsque je relance le programme il n'y a pas la donnée modifiée.
Ce que je constate et qui est très bizarre, c'est que ma base de données ne se met jamais à jour alors que une fois le programme lancé, la modification effectué et que je lis dans la base il me la retrouve bien. C'est un peu comme si la base faisait un reset à chaque fois que je la relance....
voici mon code simple pour la modification dans la base:
Les données de la base restent uniquement si je modifie les données directement dans la BD.
Alors pourquoi je n'arrive pas à modifier les données de la base en sachant que lorsque le programme tourne il arrive à lire dans la base des données qui n'y sont pas... ?
J'ai un assez gros problème, je veux pouvoir mettre à jour ma base de données avec UPDATE. Lorsque le programme est exécuté et que je modifie une donnée il n'y a pas de problème j'arrive à la retrouver dans le programme. Par contre lorsque je relance le programme il n'y a pas la donnée modifiée.
Ce que je constate et qui est très bizarre, c'est que ma base de données ne se met jamais à jour alors que une fois le programme lancé, la modification effectué et que je lis dans la base il me la retrouve bien. C'est un peu comme si la base faisait un reset à chaque fois que je la relance....
voici mon code simple pour la modification dans la base:
string commandText = "UPDATE Location SET Telephone = @tel WHERE Annee = @annee AND Adresse = @adr;";
using (SqlConnection connection = new SqlConnection(Properties.Settings.Default.DatabaseLocataireConnectionString))
{
SqlCommand command = new SqlCommand(commandText, connection);
command.Parameters.Add("@annee", SqlDbType.NVarChar);
command.Parameters["@annee"].Value = "2014";
command.Parameters.AddWithValue("@tel", textBox2.Text);
command.Parameters.AddWithValue("@adr", "46");
try
{
connection.Open();
Int32 rowsAffected = command.ExecuteNonQuery();
Console.WriteLine("RowsAffected: {0}", rowsAffected);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Les données de la base restent uniquement si je modifie les données directement dans la BD.
Alors pourquoi je n'arrive pas à modifier les données de la base en sachant que lorsque le programme tourne il arrive à lire dans la base des données qui n'y sont pas... ?
3 réponses
-
salut,
à première vue je dirai tout simplement que tu te trouve dans le cadre d'une transaction.
Quelle est la valeur deProperties.Settings.Default.DatabaseLocataireConnectionString
?
essaye de rajouter, à la suite deExecuteNonQuery
cette ligne :command.Transaction.Commit();
naga -
Salut et merci d'avoir répondu,
La valeur de Properties.Settings.Default.DatabaseLocataireConnectionString :
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DatabaseLocataire.mdf;Integrated Security=True;User Instance=True
Le command.Transaction.Commit(); n'a rien fait de plus.
PS: Il m'arrive des fois aussi lorsque je relance le programme, qu'il m'affiche bien la valeur que j'ai changer précédemment alors que dans la base la donnée n'est pas la même. ça me fait peur... -
Une personne pourrait me donner la solution pour que VS ne redéploie pas la BDD à chaque fois ?
Merci