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
Probleme d'insert db access [ par space ]
Je suis desole de poser des questions aussi stupides mais bon je vois pas je suis callé. J'aimerais realise un insert dans une bd access et pour cela
erreur d'update [ par Florynth ]
Bon la je comprend rien !!!j'ai un code pour modifier en asp.net c# une base de donné via un formulaire... Pas comliqué c'est pour un forumvoici un bo
Del string [ par JCpp ]
Pour libérer de la mémoire, je voudrai effacer le contenu d'un stringExemple : string toto = "titi";devient toto = "";Et la même chose pour les autre
CreateText() [ par JCpp ]
Je voudrais enregistrer une page d'un site en format XML.J'ai trouvé une source qui mémorise le contenu de la page en «string»http://www.csharpfr.com/
int (ASCII) to char (ou string) [ par JuS ]
Bonjour amis développeurs cshapriens,Je cherche à récupérer le caractère correspondant à un code ASCII.Comment faire ???//code ASCII du "A"int code =
Appelle d'une méthode en ne connaissant que son nom [ par Arthenius ]
hello tout le monde,je cherche à générer un menu de maniere dynamique en fonction des données stockées dans une de mes tables.je stock dans ma table l
Performances / CIL [ par MorpionMx ]
Bonjour a tous, J'ai envie de commencer la journée par une question de performance.Soit un programme minimaliste qui crée un entier i et qui l'affiche
Update d'une table avec des TexBox d'un formulaire [ par viper48 ]
Bonjour à tous , voila g un formulaire avec des TextBox et DropDownList.Etape 1: Compléter le formulaire et insérer dans la db sql server en cliquant
Probleme procédures stockées [ par 238723 ]
Bonjour j'ai un problème pour afficher le résultat d'un procédure stockées dans un TextBoxVoici un code qui marche en utilisant une requête:/*private
Cryptage décryptage [ par maevacmoi ]
Hello !Je dois créer pour aujourd'hui 15h une fonction C# permettant d'encrypter (et décrypter) un string avec une clef donnée (cf ci-dessous). J'ai t
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|