bonjour,
je suis actuellement en train de développer un site web en Asp.net, framework 3.5 et postgres 1.8.4.
La connexion avec postgres se fait très bien au travers d'un driver récupéré sur le site de postgres.
le problème est que lorsque j'essaie de passer des requêtes paramétrées celles ci ne passent pas.

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
61
62
63
 
 
int retour = -1;
            DbTransaction trans = null;
            try
            {
                // Ouverture Connexion
                CremecFactory myCremec = new CremecFactory();
                _myConnect = (DbConnection)myCremec.GetConnection();
                _myConnect.Open();
                trans = _myConnect.BeginTransaction();
 
                // Construction de la requete
                DbCommand sqlCmd = _myConnect.CreateCommand();
                sqlCmd.CommandType = CommandType.Text;
                sqlCmd.CommandText = "INSERT INTO nomtable (log_in, pass_word) VALUES ('@log_in', '@pass_word')";
                sqlCmd.Parameters.Add(new SqlParameter("@log_in", log_in));
                sqlCmd.Parameters.Add(new SqlParameter("@pass_word", pass_word));
 
 
                // Association cmd/transaction
                sqlCmd.Transaction = trans;
                sqlCmd.ExecuteNonQuery();
 
                // Retour ID ajouté
 
                DbCommand sqlCmdRet = _myConnect.CreateCommand();
                sqlCmdRet.CommandType = CommandType.Text;
                sqlCmdRet.CommandText = "select currval('nomtable_seq')";
                sqlCmdRet.Transaction = trans;
 
                Int64 res = (Int64)sqlCmdRet.ExecuteScalar();
 
                retour = (int)res ;
 
                trans.Commit();
 
            }
            catch (Exception err)
            {
 
                if (trans != null)
                {
                    retour = -2;
                    trans.Rollback();
                    Trace.Write(err.Source);
                }
            }
            finally
            {
                try
                {
                    _myConnect.Close();
                }
                catch (Exception err)
                {
 
 
                }
 
            }
 
            return retour;
le même code en remplaçant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
 
 sqlCmd.CommandText = "INSERT INTO nomtable (log_in, pass_word) VALUES ('@log_in', '@pass_word')";
                sqlCmd.Parameters.Add(new SqlParameter("@log_in", log_in));
                sqlCmd.Parameters.Add(new SqlParameter("@pass_word", pass_word));
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 
sqlCmd.CommandText = "INSERT INTO nomtable (log_in, pass_word) VALUES ('" + log_in + "', '" + pass_word + "')";
marche sans souci mais il est sujet au injections SQL.

au fait le provider est : System.Data.Odbc

voilà en espérant avoir été clair et que les infos données vous permettront de cerner le problème.

Merci d'avance !