解析查询SQL Server CE / VS 2010本地数据库时出错

时间:2012-02-02 03:26:01

标签: c# sql-server-ce

我在C#中编写了一个小应用程序来跟踪客户和工作,但我收到错误

  

"解析查询时出错。[令牌行号= 1,令牌   line offset = 38,Token in error = Name]

我使用的是SQL Server CE .sdf数据库

    public static List<string> ListDates(string clientname)
    {
        List<string> date = new List<string>();
        string myName = clientname;
        using (SqlCeCommand cmd = conn.CreateCommand())
        {
            conn.Open();
            cmd.CommandText = @"SELECT * FROM FarmJobs WHERE Name = ?Name;";
            cmd.Parameters.AddWithValue("Name", myName);
            SqlCeDataReader Reader = cmd.ExecuteReader();
            while (Reader.Read())
            {
                for (int i = 0; i < Reader.FieldCount; i++)
                {
                    date.Add(Reader["DateSeviceStarted"].ToString());
                }
            }
        }
        return date;
    }

我经常研究错误,看起来这个错误很模糊

1 个答案:

答案 0 :(得分:1)

您使用了“?”,其中@参数需要Name

  cmd.CommandText = "SELECT * FROM FarmJobs WHERE Name = @Name"; 
  cmd.Parameters.AddWithValue("@Name", myName);   

[ 旁注 :我建议使用明确的列列表,而不是SELECT *]