Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/06/2011, 22h51   #1
Futur Membre du Club
 
Grégory MARTIN
Inscription : mars 2010
Messages : 72
Détails du profil
Informations personnelles :
Nom : Grégory MARTIN

Informations forums :
Inscription : mars 2010
Messages : 72
Points : 17
Points : 17
Par défaut SqlCeCommand INSERT impossible

Bonjour,

Voici mon code C# :
Code :
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
 
namespace ProjetKarate
{
    class DAO
    {
        public DataTable getDataTable(String sql)
        {
            DataSet ds = NULL;
            try
            {
                conn.Open();
                SqlCeCommand cmd = new SqlCeCommand(sql, conn);
                SqlCeDataAdapter da = new SqlCeDataAdapter(cmd);
                ds = new DataSet();
                da.Fill(ds);
                RETURN ds.TABLES[0];
            }
            catch (Exception x)
            {
                MessageBox.SHOW(x.Message);
            }
            finally
            {
                IF (conn.State == ConnectionState.Open)
                    conn.Close();
            }
            RETURN NULL;
        }
 
        public LinkedList<MailAddress> getMails()
        {
            LinkedList<MailAddress> mails = new LinkedList<MailAddress>();
            DataTable dt = getDataTable("SELECT ADRESSE FROM EMAIL ORDER BY ADRESSE;");
            FOR(int i = 0; i < dt.Rows.Count; i++)
            {
                mails.AddLast(new MailAddress((String)dt.Rows[i][0]));
            }
            RETURN mails;
        }
 
        public LinkedList<MailAddress> saveMail(MailAddress m)
        {
            try
            {
                conn.Open();
                SqlCeTransaction tr = conn.BeginTransaction();
                SqlCeCommand cmd = new SqlCeCommand("INSERT INTO EMAIL (Adresse) VALUES('" + "toto@gmail.com" + "');", conn, tr);
                int res = cmd.ExecuteNonQuery();
                cmd.ExecuteNonQuery();
                tr.Commit();
            }
            catch (Exception x) { MessageBox.SHOW(x.Message); }
            finally
            {
                IF (conn.State == ConnectionState.Open)
                    conn.Close();
            }
            RETURN this.getMails();
        }
    }
}
Lorsque j'essaie d'ajouter une ligne à la table EMAIL par mon application, j'ai l'erreur : Impossible d'insérer une valeur dupliquée dans un index unique. [TABLE name = EMAIL, Constraint name= PK_EMAIL].

Lorsque j'essaie par la suite d'insérer la ligne par l'explorateur de sources de données, clic droit sur la table EMAIL, nouvelle requête, je tape la même requête et ça passe.

Quelqu'un peut m'aider svp ?
sunlover est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 00h29   #2
Futur Membre du Club
 
Grégory MARTIN
Inscription : mars 2010
Messages : 72
Détails du profil
Informations personnelles :
Nom : Grégory MARTIN

Informations forums :
Inscription : mars 2010
Messages : 72
Points : 17
Points : 17
Par défaut, VS copie visiblement le fichier de base de données dans le répertoire Debug.

Clic droit sur le fichier de base de données > propriétés.

Mettre : Copier dans le répertoire de sortie : Ne pas copier.
Modifier la chaîne de connexion dans le fichier app.config :

Code :
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <ADD name="NomDuProjet.Properties.Settings.TFEConnectionString"
            connectionString="Data Source=CHEMIN_COMPLET_DU_FICHIER_SDF_ORIGINAL;password=MOT_DE_PASSE;" providerName="Microsoft.SqlServerCe.Client.3.5" />
    </connectionStrings>
</configuration>
Pour le chemin complet du fichier original, voir les propriétés du fichier sdf dans l'explorateur de solutions.
sunlover est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h05.


 
 
 
 
Partenaires

Hébergement Web