2012-02-02 83 views
3

我在C#寫了一個小程序來跟蹤客戶和作業的錯誤解析查詢的SQL Server CE,但我得到一個錯誤有/ VS 2010的本地數據庫

「有一個錯誤解析查詢。[令牌行號= 1,令牌 行偏移= 38,令牌在錯誤=名稱]

我使用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

已經使用了「?」在這裏你需要一個「@Name參數:

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

[旁註 :我會建議使用明確的列列表而不是SELECT *]