Accueil > Forum > > > > Linq2SQL - Un update foireux
Linq2SQL - Un update foireux
lundi 17 novembre 2008 à 09:05:04 |
Linq2SQL - Un update foireux

yannickiwi
|
Bonjour, J'essaie de faire un update dans sql server avec linq2sql. Le code se compile, aucune erreur se passe, la mise à jour ne se fait pas. Voici donc le code: [code] private static void editClientAcheteurs(string edit_id, string titre, string nom, string prenom, string tel_priv, string tel_prof, string natel, string fax, string email, string email_prof, string adresse, string adressDeux, string societe) { DataClasses1DataContext db = new DataClasses1DataContext(); Int32 idClient = Convert.ToInt32("" + edit_id + ""); ; xdb_client xdbclient = db.xdb_clients.Single(c => c.id == idClient); try { db.SubmitChanges(); } catch (Exception edex) { MessageBox.Show(edex.Message, "erreur", MessageBoxButtons.OK, MessageBoxIcon.Information); } }[/code] Je vous remercie de l'attention porté à mon message.
|
|
lundi 17 novembre 2008 à 09:10:50 |
Re : Linq2SQL - Un update foireux

yannickiwi
|
Désolé, c'est les premières fois que j'utilis le forum ^^. Voici le code: http://pastebin.com/m4a75d815
|
|
lundi 17 novembre 2008 à 10:44:37 |
Re : Linq2SQL - Un update foireux

nhervagault
|
Salut,
Il semble manquer des choses dans ton code Tu fais une selection Single Mais pas modification dans ton code xdbclient.AdresseDexu = adressDeux;
Donc ca semble normal
Ptits conseils =============== Sinon la signature de ta methode devrait plus rensemblée a editClientAcheteurs(Client client) {
}
Dans ce cas tu ne modifies pas les signatures a chaque fois que tu ajoutes un champ sur client ;-)
Mais le datacontext en Singleton (il ne sera instancier qu'une seule fois)
Convert.ToInt32("" + edit_id + ""); Pourquoi ne pas faire Convert.ToInt32(edit_id ) directement?
Bon coding
|
|
lundi 17 novembre 2008 à 10:54:33 |
Re : Linq2SQL - Un update foireux

yannickiwi
|
Salut, Merci pour ta réponse. J'ai éditer le convert...mais pour le reste: voici le code qui appelle ma fonction: editClientAcheteurs(edit_id, titre, nom, prenom, tel_priv, tel_prof, natel, fax, email, email_prof, adress_une, adress_deux, societe, clientAcheteur); Evidemment tout celà est pris de formulaire... c'est la raison pour laquelle j'ai fais de cette manière. Comment écrire le code pour qu'il fasse la modification? Moi je me suis dis "xdb.AdressDeux prends la valeur de adresseDeux" donc ca jouait, mais apparemment non :) Meilleures salutations
|
|
lundi 17 novembre 2008 à 11:19:26 |
Re : Linq2SQL - Un update foireux

nhervagault
|
J'ai pas compris ce te veux de plus? (la touche entrée de ton clavier ne fonctionne pas??)
IHM
xdb_client c = new xdb_client(); // ou reprise d'un client c.titre = TextBox1.Text; .... c.age = Integer.Parse(TextBox2.Text); // faire les cast pour remplir correctement l'objet //Sauvegarde ClientSave(c);
public void ClientSave(xdb_client c) { var db = db.GetInstance(); //Singleton a coder xdb_client xdbclient = db.xdb_clients.Single(c => c.id == idClient); c.id = idClient; xdbclient = c; db.SubmitChanges(); }
C'est pas correct. Ca va te donner une idée?
|
|
lundi 17 novembre 2008 à 16:27:29 |
Re : Linq2SQL - Un update foireux

yannickiwi
|
xdb_client c = new xdb_client(); // ou reprise d'un client c.titre = TextBox1.Text; c. ne contient aucun champs de ma table, il manquerait quelque chose?
|
|
lundi 17 novembre 2008 à 18:41:07 |
Re : Linq2SQL - Un update foireux

nhervagault
|
Je ne connais pas ton code Normalement c'est une classe qui appartient a ton modele ne connaissant pas ton modele je ne peut guere t'aider
Bon courage
|
|
mardi 18 novembre 2008 à 08:53:59 |
Re : Linq2SQL - Un update foireux

yannickiwi
|
Salut, Dans mon schemas, j'ai les tables xdb_clients (celle concernée actuellement), xdb_adress et xdb_objets(pas encore créé celle dernière). Voici un exemple de code du form_load, vu que c'est la forme d'edition et d'ajout: DataClasses1DataContext db = newDataClasses1DataContext(); mbTitre.SelectedIndex = 0;if (!string.IsNullOrEmpty(edit_id)) { var editClient = from t in db.xdb_clients where t.id.ToString() == edit_id select t;xdb_client xdbClient = editClient.First();txtNom.Text = xdbClient.lastName; txtPrenom.Text = xdbClient.firstName; txtSociete.Text = xdbClient.societe; txtTelPriv.Text = xdbClient.tel_prive; txtTelProf.Text = xdbClient.tel_prof; txtNatel.Text = xdbClient.natel; txtEmail.Text = xdbClient.email; txtEmailProf.Text = xdbClient.email_prof; txtFax.Text = xdbClient.fax; }
et le code d'une des forme d'enregistrement:
...string titre = cmbTitre.SelectedItem.ToString(); string nom = txtNom.Text; string prenom = txtPrenom.Text; string societe = txtSociete.Text; string tel_priv = txtTelPriv.Text; string tel_prof = txtTelProf.Text; string natel = txtNatel.Text; string fax = txtFax.Text; string email = txtEmail.Text; string email_prof = txtEmailProf.Text; string adress_une = txtAdresseUne.Text; string adress_deux = txtAdressDeux.Text;if (!string.IsNullOrEmpty(edit_id)) { editClientAcheteurs(edit_id, titre, nom, prenom, tel_priv, tel_prof, natel, fax, email, email_prof, adress_une, adress_deux, societe, clientAcheteur); } else { saveClientAcheteurs(titre, nom, prenom, tel_priv, tel_prof, natel, fax, email, email_prof, adress_une, adress_deux, societe, clientAcheteur); }
...
Si il manque quelque chose, dis le moi :)
|
|
mardi 18 novembre 2008 à 19:41:26 |
Re : Linq2SQL - Un update foireux

nhervagault
|
Voila un exemple, il y a peut etre mieux en passant par du binding.
C'est basé sur la table categorie de Northwind et c'est fonctionnel pour la mise a jour ;-)
private void Form1_Load(object sender, EventArgs e) { var cat = (from c in model.Categories select c).First(); textBox1.Text = cat.CategoryName; textBox2.Text = cat.Description; textBox3.Text = cat.CategoryID.ToString();
}
private void button1_Click(object sender, EventArgs e) { var id = Int32.Parse(textBox3.Text); var cat = (from c in model.Categories where c.CategoryID == id select c).First();
cat.CategoryName = textBox1.Text; cat.Description = textBox2.Text; model.SubmitChanges(); }
private NorthwindDataContext model = new NorthwindDataContext();
|
|
mercredi 19 novembre 2008 à 09:27:01 |
Re : Linq2SQL - Un update foireux

yannickiwi
|
Salut mon ami ! Merci à toi de m'aider ! En reprenant ton exemple, mon code est maintenant comme ça (pour les boutons): DataClasses1DataContext db = new DataClasses1DataContext (); xdb_adress xdbAdress = new xdb_adress (); var editClient = ( from t in db.xdb_clients where t.id.ToString() == edit_id select t).First();editClient.titre = cmbTitre.SelectedItem.ToString(); editClient.lastName = txtNom.Text; editClient.firstName = txtPrenom.Text; editClient.societe = txtSociete.Text; editClient.tel_prive = txtTelPriv.Text; editClient.tel_prof = txtTelProf.Text; editClient.natel = txtNatel.Text; editClient.fax = txtFax.Text; editClient.email = txtEmail.Text; editClient.email_prof = txtEmailProf.Text; xdbAdress.adresse_1 = txtAdresseUne.Text; xdbAdress.adresse_2 = txtAdressDeux.Text; if (! string .IsNullOrEmpty(edit_id)){ db.SubmitChanges(); } else { saveClientAcheteurs(titre, nom, prenom, tel_priv, tel_prof, natel, fax, email, email_prof, adress_une, adress_deux, societe, clientAcheteur); }
Je ne suis pas sur au niveau de la table adress vu que adress est lié à client... peut etre dois-je faire un inner join dans ma requete EDITCLIENT? Je me dis ça car dans ma form principal, pour le datagridview j'ai:
var clientAcheteurs = ( from p in db.xdb_clients join a in db.xdb_adresses on p.adress equals a.id where p.typeClients == "Acheteur" select new { Nom = p.lastName, Prnom = p.firstName, Socit = p.societe, Email = p.email, Tlphone = p.natel, Adresse = a.adresse_1, AdresseSecondaire = a.adresse_2 }).Distinct(); this .gridStandard.DataSource = clientAcheteurs.ToList();comme tu peux le voir je fais un join sur l'adresse :) Sinon, comme tu peux le voir, si edit_id est égal à nul, il passe dans le else qui fait va dans la fonction saveClientAcheteurs. Mais voilà que les paramètre n'existe plus vu que j'ai utilisé ta méthode. Ma question est donc: Est-ce qu'il y a une manière plus rapide que de refaire chaque ligne du style: string titre = ... string name = ... ... saveClientAcheteurs(.....); ? Je te remercie de l'attention porté à mon message Yannick
|
|
Cette discussion est classée dans : code, string, id, update, linq2sql
Répondre à ce message
Sujets en rapport avec ce message
Problème requête SQL [ par othmanseqat ]
Bonjour à tous, En faite j'essaye de requêter directement sur ma DB pour récupérer les enregistrement via mon service web et par la suite les formater
Programme freeze, aide ajouter thread [ par deli2025 ]
Bonjour, je suis nouveau dans le domaine de c# et j'apprends sur le tas^^ Je viens de créer un petit programme qui hash du texte en sha1 ou md5 et ma
Comment imprime un etat crystal report en utilisant les sockets [ par PascalCmoa ]
Je suis en train de mettre en place les gestions d'impression d'états Crystal Report en mettant au point une classe. Les imprimantes sont toutes sur I
INSERT qui ne fonctionne pas [ par altozinzin ]
Salut à tous! Voila je débute dans le C# et je regardais les bases de données SQL. J'ai trouvé dans un tuto un bout de code que j'ai 'légérement' ad
souci avec "updatecommand" [ par sisimo ]
bonjour, j'ai un souci avec "updatecommand" elle met ajour tout les ligne de la table et quand j'ai essaye d'ajout un where ca me donne cette erreu
Decimal, float, double... en C# avec SQL Server [ par 0nn2belle ]
Bonsoir tout le monde, Je suis débutante en c# et je suis confrontée à un problème que j'ai déjà rencontré, mais... en JAVA ! Et je suis perdue dans m
Parse CSV vers Dictionary [ par ninjy ]
Bonjour, Je dois parser un csv vers un dictionary pour ensuite utiliser les données dans un graphique. Je rencontre un problème au moment de l'exécu
pb de modification [ par perrotta ]
bonjour , je developpe un service web avec c# sous vs.net 2008,et pour la base de donnees j'utilise sql server 2005; j'ai crée la methode d'insertion
Communication entre deux programmes c# par USB [ par Sylvain331 ]
Bonjour, Je suis actuellement en DUT (réseau et télécom) et au cour de ma seconde année je doit effectuer un projet tuteuré. Ce sujet c'est révélé tr
File stream C# [ par houba80 ]
salut, sa fait longtemps que j'essaye d'inserer un fichier word ou excel dans ma base sql server 2008 avec une application c#. voici les étapes que j'
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|