2009-07-14 5 views
2

dans la dernière heure, j'ai essayé différentes variantes de cette requête, mais j'obtiens l'erreur au nom d'utilisateur et le nom d'utilisateur est juste une chaîne normale avec le nom d'utilisateur que je reçois de fichier xml contenant pas de caractères spéciaux ou que ce soitQuel est le problème avec cette requête SQLCe?

I utiliser avec SLQ compact 3.5

PS j'ai essayé d'utiliser? au lieu de @username ne fonctionnait pas tous feilds sont "nchar" sauf "date"

   C = nodeItem["user_from"].InnerText; 
       avatar = nodeItem["user_from_avatar"].InnerText; 
       string msgText = nodeItem["message"].InnerText; 
       DateTime dt=DateTime.Now; 

       string sql = "INSERT INTO posts(user,msg,avatar,date) VALUES(@username,@messige,@userpic,@thedate)"; 
       using (SqlCeCommand cmd = new SqlCeCommand(sql, connection)) 
       { 
        cmd.Parameters.Add("@username",C); 
        cmd.Parameters.Add("@messige", msgText.ToString()); 
        cmd.Parameters.Add("@userpic", avatar.ToString()); 
        cmd.Parameters.Add("@thedate", dt); 
        connection.Open(); 
        cmd.ExecuteNonQuery(); 
        adapter.Update(data); 
        connection.Close(); 
       } 

Le msg d'erreur: alt text http://clip2net.com/clip/m11962/1247582804-clip-16kb.png Merci, Nikola

+0

Quelle erreur obtenez-vous? –

+0

Quel message d'erreur obtenez-vous? –

Répondre

7

Essayez autour de l'utilisateur 'avec des crochets, [ utilisateur] '(et éventuellement date).

1

En SQLCE u ne peut pas utiliser directement les paramètres, je veux dire la phrase:

string sql = "INSERT INTO posts(user,msg,avatar,date) VALUES(@username,@messige,@userpic,@thedate)"; 

est faux. il devrait être

string sql = "INSERT INTO posts(user,msg,avatar,date) VALUES(?,?,?,?)"; 

puis suivi par: "?"

using (SqlCeCommand cmd = new SqlCeCommand(sql, connection)) 
       { 
        cmd.Parameters.Add("@username",C); 
        cmd.Parameters.Add("@messige", msgText.ToString()); 
        cmd.Parameters.Add("@userpic", avatar.ToString()); 
        cmd.Parameters.Add("@thedate", dt); 
        connection.Open(); 
        cmd.ExecuteNonQuery(); 
        adapter.Update(data); 
        connection.Close(); 
       } 

En SQLCE les paramètres sont passés comme

Espérons que cela vous aide

Questions connexes