在过去一小时内,我一直在尝试此查询的不同变体,但我在用户名时收到错误,用户名只是一个普通字符串,用户名是我从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();
}
错误消息:
(来源:clip2net.com)
谢谢 ,
尼古拉
答案 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中,参数传递为“?”
希望它可以帮到你