mydust
Messages postés11Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention17 juin 2006
-
19 févr. 2006 à 23:43
mydust
Messages postés11Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention17 juin 2006
-
21 févr. 2006 à 01:08
Bonjour, je souhaiterai modifier une base de donnée après avoir modifier un dataset ou un datagrid. C'est tout simple mais bon, je n'y arrive pas, je débute en c#+sql. Pour l'instant j'essaie de le faire en modifiant le dataset. Donc, je récupère les données dans un dataset (utilisation d'un sqladaptater et remplissage du dataset). Jusque là tout va bien. Ensuite, je modifie le dataset en modifiant une cellule. J'accepte les modifications, cela passe car je l'affiche dans une datagrid. Ensuite, je fais un Update via le sqladaptater, mais là, rien ne se passe, ma base de données ne change pas, je ne sais pas pourquoi... Voici mon bout de code:
sqlDs.Clear();
sqlDs.Tables.Clear();
string source =mySqlClient.sConfigSqlConnect("(local)\\SQLEXPRESS","Gescom"); //c'est une procédure qui fonctionne et qui renvoit le string de connection
sqlCnx.ConnectionString = source;
sqlCnx.Open();
string sSql="SELECT * FROM "+comboBox1.SelectedItem.ToString();
sqlDA=
new SqlDataAdapter(sSql,sqlCnx);
sqlDA.Fill(sqlDs,"maTable");
sqlDs.Tables[0].Rows[0][3]="manouvellevaleur";
sqlDs.AcceptChanges();
label1.Text = sqlDs.Tables[0].TableName;
sqlDA.Update(sqlDs,"maTable");
maDataGrid.DataSource = sqlDs.Tables["maTable"];
//maDataGrid.SetDataBinding(sqlDs,"maTable"); //le fait de mettre un data binding il faut rester connecter je pense...
sqlDA.Dispose();
sqlDA =
null;
sqlCnx.Close();
Quand j'ouvre le sql manager pour vérifier les données, rien n'a été changé..., je ne trouve pas ou j'ai fait une erreur :s, quelqu'un pourrait m'aider s'il vous plait? Par après je souhaiterais utiliser un datagrid pour modifier la base de données en direct et aussi utiliser un bouton pour modifier une autre base de donnée mais par click. Il me semble qu'il faille utiliser un
maDataGrid.SetDataBinding(sqlDs,"maTable");
mais quand je fais cela j'ai aussi des problèmes. car si je place ce code à chaque fois que je lance le code que j'ai joints après la première fois, mon datagrid est rempli de NULL... Et là, je bloque encore depuis 2 semaines dessus :s... donc, s'il y a un quelqu'un qui peut m'aider cela serait vraiment sympa
mydust
Messages postés11Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention17 juin 2006 21 févr. 2006 à 01:06
bonjour à tous, merci pour votre aide.Je n'ai pas utilisé le commandbuilder qui permettrai en fait de faire une modification de la base de données tout en controler la succession des modification de la table entre insert, update et delete.Le fait d'utiliser update de l'adapter permet si j'ai bien compris de générer lui meme les commandes sql adéquates.Pour dire vrai,je ne sais pas vraiment ce que j'ai fait de spécial pour que cela fonctionne car c'est un peu nébuleux.Mais j'explique en gros.Je crée une dataset qui contient les modifications du premier dataset.Et je fais l'update dessus (note je l'ai fait plein de fois avec plein de petites modifications).Après une vingtaine d'essais et de désespoir oh miracle, ca fonctionne.... voici le bout de code je le tape tel quel car c'est juste un essai que je vais implémenter dans mon projet plus tard. Si cela peut aider des gens ou bien s'il y a des commentaires à faire dessus, je serais bien content de les savoir ;).Ce n'est pas propre, je sais, mais bon, il est une heure du matin et ca marche, donc je suis content après plusieurs semaines de blocage :) :) :) :) :) :). A plus et encore merci.
mydust
Messages postés11Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention17 juin 2006 20 févr. 2006 à 12:59
Salut, je vais essayer, merci. Je vous tiens au courant. En fait je pensais que le update de l'adapter générait lui meme ce qu'il faut pour effectuer l'update :s... Au fait, j'utilise visual c#2003 avec le sql server 2005 express j'espère que cela ne pose pas trop de problème?