begin process at 2012 02 10 11:37:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

SQL Server

 > 

Linq2SQL - Un update foireux


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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


1 2

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'


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,073 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales