2009-07-14 102 views
2

在過去一小時我一直在嘗試此查詢的不同變體,但我的用戶名得到錯誤,用戶名是隻是用戶名普通的字符串,我從XML文件不包含特殊字符或任何此SQLCe查詢有什麼問題?

我得到'm使用SLQ compact 3.5

PS我試過使用?而不是@username也沒有工作 所有精密組件都是「NCHAR」除「日期」

   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(); 
       } 

錯誤信息:alt text http://clip2net.com/clip/m11962/1247582804-clip-16kb.png 謝謝, 尼古拉

+0

你會得到什麼錯誤? – 2009-07-14 14:43:23

回答

7

嘗試圍繞「用戶」用方括號「[用戶]'(可能還有日期)。

1

在SQLCE你無法直接使用的參數我的意思了一句:

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

是錯誤的。它應該是

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

,然後遵循: 「?」

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(); 
       } 

在SQLCE參數將作爲傳遞

希望它可以幫助你