我在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;
}
我经常研究错误,看起来这个错误很模糊
答案 0 :(得分:1)
您使用了“?
”,其中@
参数需要Name
:
cmd.CommandText = "SELECT * FROM FarmJobs WHERE Name = @Name";
cmd.Parameters.AddWithValue("@Name", myName);
[ 旁注 :我建议使用明确的列列表,而不是SELECT *
]