这个SQLCe查询有什么问题?

时间:2009-07-14 14:37:46

标签: .net ado.net sql-server-ce

在过去一小时内,我一直在尝试此查询的不同变体,但我在用户名时收到错误,用户名只是一个普通字符串,用户名是我从xml文件中获取的,不包含任何特殊字符或者

我正在使用SLQ compact 3.5

P.S我试过用?而不是@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
(来源:clip2net.com
谢谢 , 尼古拉

2 个答案:

答案 0 :(得分:7)

尝试使用方括号“'user'','[user]'(以及可能的日期)。

答案 1 :(得分: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中,参数传递为“?”

希望它可以帮到你