Salut,
après des recherches infructueuses sur le Forum, je me décide à écrire un nouveau post pour tenter de résoudre mon pbl.
Je code en C# et je me lie à postgresql (v.9.4.4) via npgsql.
Je n'ai aucun problème à accéder aux tables, mais lorsque je crée une vue et que je veux la lire, je reçois un message d'erreur me disant que la relation (ici la vue) n'existe pas (erreur 42P01). Pourtant elle existe bien.
Voici une vue dans postgresql
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 CREATE OR REPLACE VIEW public."OCTRencodees" AS SELECT documents.num_document_cadastre AS no_octr, documents.minute, documents.date_minute, documents.ag, documents.matricule_ag FROM documents WHERE documents.type_document::text = 'OCTR'::text GROUP BY documents.num_document_cadastre, documents.minute, documents.date_minute, documents.ag, documents.matricule_ag ORDER BY documents.num_document_cadastre; ALTER TABLE public."OCTRencodees" OWNER TO jmdeneyer; COMMENT ON VIEW public."OCTRencodees" IS 'Donne la liste des OCTR encodées';
Voici le code de lecture de cette vue
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 public static MTObservableCollection<MinuteDocument> ListeOCTRencodés() { NpgsqlConnection conn = new NpgsqlConnection(Properties.Settings.Default.PostGISconnexionString); MTObservableCollection<MinuteDocument> listeOCTR = new MTObservableCollection<MinuteDocument>(); string listeOCTRencodéssql = @"SELECT * FROM OCTRencodees;"; NpgsqlCommand listeOCTRencodéscommand = new NpgsqlCommand(listeOCTRencodéssql, conn); NpgsqlDataReader listeOCTRencodésdr; try { conn.Open(); using (listeOCTRencodésdr = listeOCTRencodéscommand.ExecuteReader()) { while (listeOCTRencodésdr.Read()) { MinuteDocument octr = new MinuteDocument(); int noMandat = 0, noMatricule = 0; DateTime dateMinute = new DateTime(); if (int.TryParse(listeOCTRencodésdr["no_octr"].ToString(), out noMandat)) octr.Numero = noMandat; if (int.TryParse(listeOCTRencodésdr["matricule_ag"].ToString(), out noMatricule)) octr.Matricule = noMatricule; if (DateTime.TryParse(listeOCTRencodésdr["date_minute"].ToString(), out dateMinute)) octr.DateMinute = dateMinute; octr.Minute = listeOCTRencodésdr["minute"].ToString(); octr.AG = listeOCTRencodésdr["ag"].ToString(); listeOCTR.Add(octr); } } } catch (Exception ex) { throw new Exception("la lecture des OCTR encodées a engendré l'erreur suivante.Message : " + ex.Message, ex); } finally { conn.Close(); } if (listeOCTR.Count > 0) return listeOCTR; return null; }
Voici le message que je reçois
System.Exception
HResult=0x80131500
Message=la lecture des OCTR encodées a engendré l'erreur suivante.Message : ERREUR: 42P01: la relation « octrencodees » n'existe pas
Source=TopocomArchives
Exception interne 1 :
NpgsqlException : ERREUR: 42P01: la relation « octrencodees » n'existe pas
Qu'est-ce que je fais mal ?
Que dois-je faire pour avoir accès aux vues ?
Merci de vos z'avis z'avisés.
Partager