Bonjour,

Je viens de passer plusieurs heures à tenter en vain de comprendre pourquoi un simple INSERT avec des valeurs de type decimal dans une table ne fonctionne pas.

Voici mon code
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
 
decimal prix;
OleDbConnection moon = new OleDbConnection();
moon.ConnectionString =@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\c\Desktop\xxx.mdb";
 
string sqlIns = "INSERT INTO x ( date_m, prix)" +
                               " VALUES (@date_en,@prix,)";
moon.Open();
OleDbCommand moon_cmd = new OleDbCommand(sqlIns);
moon_cmd.Connection = moon;
try{
 
prix = 12;
moon_cmd.Parameters.AddWithValue("@date_now", DateTime.Today.ToShortDateString());
 
moon_cmd.Parameters.Add("@prix", OleDbType.Decimal).Value=  prix;
 
// j'ai essayé aussi cela mais rien non plus
// moon_cmd.Parameters.Add("@prix", OleDbType.Numeric).Value=  prix;
 
      moon_cmd.ExecuteNonQuery();
      moon_cmd.Dispose();
      moon_cmd = null;
 
}
catch (Exception ex)
{
                   throw new Exception(ex.ToString(), ex);
 
}
finally
{
               moon.Close();
}
Impossible d'insérer la donnée prix que ce soit dans un type currency ou Number de type decimal avec 2 de précision dans accessdb.