Bonjour,
Je me dirige vers vous espérant trouver un solution à mon énorme problème.
Je vous l'explique.
Je développe une application en utilisant c#, Sql server 2008, ExtJS sur une VM
Quand je lance plusieurs requetes, j'ai parfois des résultats incohérents. Par exemple. pour afficher dans un tableaux, j'utilise cette fonctionLe resultat que je dois avoir est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 //ConnectBDD cc = new ConnectBDD(); SqlConnection sqlCon = new SqlConnection(); sqlCon.ConnectionString = "Trusted_Connection=yes;Server=" + WebConfigurationManager.AppSettings["connBdMd_server"] + ";Initial Catalog=" + WebConfigurationManager.AppSettings["connBdMd_db"] + ";uid=" + WebConfigurationManager.AppSettings["connBdMd_user"] + ";password=" + WebConfigurationManager.AppSettings["connBdMd_pwd"]; try { sqlCon.Open(); // cc.open(); SqlCommand query22 = new SqlCommand("select distinct OM.idOM, OM.libelleOM, OM.numFicheOM, OM.refOM, cast(OM.dateCreaOM as char(10)) dateCreaOM , cast(OM.dateValideOM as CHAR(10)) dateValidOM, " + "umd.nomUtilisateurMD libAuteur, histo.nomHistorisation libHistorisation, fraich.nomFraicheur libFraicheur, Statut.nomStatut libStatut, " + "OM.regleGestionOM, OM.regleObtentionOM, OM.uniteOM, FormatOM.nomFormatOM libFormat, SFD.libelleSFD libSFD, " + "TypeOM.nomTypeOM libType, TypeOM.idTypeOM , " + "case " + "when OM.idTypeOM = 1 and OM.idThemeOM is not null " + "then Theme.nomTheme " + "when OM.idTypeOM = 2 and OM.idAxeOM is not null " + "then Axe.nomAxe " + "else null " + "end libThemeAxe " + "from OM " + "join OMHasApplication OMa on OMa.idOM = OM.idOM " + "join Application app on app.idApplication = OMa.idApplication " + "left join UtilisateurMD umd on umd.idUtilisateurMD = OM.idAuteurOM " + "left join Historisation histo on histo.idHistorisation = OM.idHistorisationOM " + "left join Fraicheur fraich on fraich.idFraicheur = OM.idFraicheurOM " + "left join Statut on Statut.idStatut = OM.idStatutOM " + "left join SFD on OM.idSFD = SFD.idSFD " + "left join FormatOM on FormatOM.idFormatOM = OM.idFormatOM " + "left join TypeOM on TypeOM.idTypeOM = OM.idTypeOM " + "left join Theme on Theme.idTheme = OM.idThemeOM " + "left join Axe on Axe.idAxe = OM.idAxeOM " + "where " + "OMa.idApplication in " + "( " + "select gha.applicationIdApplication from UtilisateurMDHasGroupeMD uhg, GroupeMDHasApplication gha " + "where uhg.utilisateurMDIdUtilisateurMD = " + idUser + " and uhg.groupeMDIdGroupeMD = gha.groupeMDIdGroupeMD " + "union " + "select uha.applicationIdApplication FROM UtilisateurMDHasApplication uha " + "where uha.utilisateurMDIdUtilisateurMD = " + idUser + " " + ") " + "and (OM.idAuteurOM = " + idUser + " or OM.idStatutOM = 5) " + "order by OM.libelleOM", sqlCon /* cc.getConnection()*/); DataTable dt22 = new DataTable(); dt22.Load(query22.ExecuteReader()); Response.Write("{\"success\":true, \"results\":" + JsonConvert.SerializeObject(dt22) + "}"); } catch (Exception e) { Response.Write("{\"failure\":true, \"message\":\"" + e.Message + "\"}"); } finally { sqlCon.Close(); // cc.close(); }Le probleme est que parfois j'ai le resultat de cette requete ci-dessous
Code : Sélectionner tout - Visualiser dans une fenêtre à part {"success":true, "results":[{"idOM":11,"libelleOM":"azertyuiop","numFicheOM":null,"refOM":"atyuiopmlkjhgfdsq","dateCreaOM":"2011-07-31","dateValidOM":null,"libAuteur":"aa","libHistorisation":"historisation 1","libFraicheur":"fraicheur 1","libStatut":"Brouillon","regleGestionOM":"dvb vcxbvc","regleObtentionOM":"xcvbxvcb","uniteOM":"argennnt !!","libFormat":"euros","libSFD":"HHHHHHHHHHHH","libType":"Critère d'analyse","idTypeOM":2,"libThemeAxe":"Axe 2 demo"},{"idOM":2,"libelleOM":"libellé","numFicheOM":null,"refOM":"","dateCreaOM":"2011-07-29","dateValidOM":null,"libAuteur":"LOPES","libHistorisation":"historisation 1","libFraicheur":"fraicheur 1","libStatut":"En production","regleGestionOM":"sdqfsdqfsqdf","regleObtentionOM":"fqsdfsdq","uniteOM":"fsdqfsdqf","libFormat":"2 decimale","libSFD":"SFD 3.1","libType":"Critère d'analyse","idTypeOM":2,"libThemeAxe":"Axe 2 demo"},{"idOM":12,"libelleOM":"OBJ ME CA pour les nuls","numFicheOM":null,"refOM":"","dateCreaOM":"2011-07-31","dateValidOM":null,"libAuteur":"aa","libHistorisation":null,"libFraicheur":null,"libStatut":"En cours","regleGestionOM":"xdxxx","regleObtentionOM":"xxx","uniteOM":"","libFormat":"2 decimale","libSFD":"HHHHHHHHHHHH","libType":"Critère d'analyse","idTypeOM":2,"libThemeAxe":null},{"idOM":14,"libelleOM":"OM LIER A TEST TOTO","numFicheOM":null,"refOM":"REF","dateCreaOM":"2011-08-01","dateValidOM":null,"libAuteur":"aa","libHistorisation":"historisation 1","libFraicheur":"fraicheur 1","libStatut":"En cours","regleGestionOM":"","regleObtentionOM":"","uniteOM":"ARGENT !!!!","libFormat":"euros","libSFD":"HHHHHHHHHHHH","libType":"Critère d'analyse","idTypeOM":2,"libThemeAxe":"Axe 2 demo"},{"idOM":13,"libelleOM":"petit objet","numFicheOM":null,"refOM":"","dateCreaOM":"2011-07-31","dateValidOM":null,"libAuteur":"aa","libHistorisation":null,"libFraicheur":null,"libStatut":"En cours","regleGestionOM":"","regleObtentionOM":"","uniteOM":"","libFormat":"2 decimale","libSFD":"HHHHHHHHHHHH","libType":"Indicateur","idTypeOM":1,"libThemeAxe":"Theme 1 "}]}
Quelqu'un pourrait mexpliquer comment sqlserver me renvoi des resultats des autres requêtes?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SqlCommand query = new SqlCommand(); query.Connection = bdd.getConnection(); query.CommandText = "Select idTypeOM FROM OM WHERE idOM = " + idOM; query.Connection.Open();// bdd.open(); DataSet ds = new DataSet(); ds.Tables.Add("data"); ds.Tables["data"].Load(query.ExecuteReader()); if (ds.Tables["data"].Rows[0]["idTypeOM"] == "1") {...}
J'espère que j'étais clair.
Merci d'avance de vos réponses.
Partager