C# sqlite异常没有这样的列

C# sqlite异常没有这样的列,c#,sqlite,C#,Sqlite,下面的方法应该检查记录是否已经存在于表中或是否存在。但是,我收到语法错误“没有这样的列” public void ifExist(int myId) { 字符串dbPath=Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal),“ormdemo.db3”); var db=新的SQLiteConnection(dbPath); SQLiteCommand cmd=新的SQLiteCommand(db)

下面的方法应该检查记录是否已经存在于表中或是否存在。但是,我收到语法错误“没有这样的列”

public void ifExist(int myId)
{
字符串dbPath=Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal),“ormdemo.db3”);
var db=新的SQLiteConnection(dbPath);
SQLiteCommand cmd=新的SQLiteCommand(db);
cmd.CommandText=“从storeConsumption中选择count(*),其中Id=?”+myId;
int count=Convert.ToInt32(cmd.ExecuteScalar());
如果(计数=0)
{
Console.WriteLine(“记录不存在”);
}
其他的
{
Console.WriteLine(“记录存在”);
}
}      
尽管如此,仍然存在相同的错误。如果你知道我该如何解决这个问题,我将不胜感激

更新:我可以这样解决这个问题:

public async Task<Boolean>  ifExist(int id){

    var result = await sdb.databaseConnection().ExecuteScalarAsync<int>("SELECT count(*) FROM storeConsumption WHERE Id = ?", id);
    Console.WriteLine(result);
    if (result > 0) return true;

    return false;

}
公共异步任务ifExist(int-id){
var result=await sdb.databaseConnection().ExecuteScalarAsync(“从storeConsumption中选择count(*),其中Id=?”,Id);
控制台写入线(结果);
如果(结果>0)返回true;
返回false;
}
它似乎是由“Id=?”引起的。要添加参数时,请尝试使用以下命令行

cmd.CommandText = "SELECT count(*) FROM storeConsumption WHERE Id = @myId";
cmd.Parameters.Add("@myId",myId);
更多信息:

它似乎是由“Id=?”引起的。要添加参数时,请尝试使用以下命令行

cmd.CommandText = "SELECT count(*) FROM storeConsumption WHERE Id = @myId";
cmd.Parameters.Add("@myId",myId);
更多信息:


更新:以下代码已解决错误,并且运行良好:

public async Task<Boolean>  ifExist(int id){

    var result = await sdb.databaseConnection().ExecuteScalarAsync<int>("SELECT count(*) FROM storeConsumption WHERE Id = ?", id);
    Console.WriteLine(result);
    if (result > 0) return true;

    return false;

}
公共异步任务ifExist(int-id){
var result=await sdb.databaseConnection().ExecuteScalarAsync(“从storeConsumption中选择count(*),其中Id=?”,Id);
控制台写入线(结果);
如果(结果>0)返回true;
返回false;
}

更新:以下代码已解决错误,并且运行良好:

public async Task<Boolean>  ifExist(int id){

    var result = await sdb.databaseConnection().ExecuteScalarAsync<int>("SELECT count(*) FROM storeConsumption WHERE Id = ?", id);
    Console.WriteLine(result);
    if (result > 0) return true;

    return false;

}
公共异步任务ifExist(int-id){
var result=await sdb.databaseConnection().ExecuteScalarAsync(“从storeConsumption中选择count(*),其中Id=?”,Id);
控制台写入线(结果);
如果(结果>0)返回true;
返回false;
}

卸载您的应用程序并再次检查。卸载您的应用程序并再次检查。感谢John的回复。Visual Studio无法识别Add方法。实际上,我的cmd.Paramater只使用了4种方法。不过,我添加了所有必要的库。你有什么建议吗?谢谢约翰的回答。Visual Studio无法识别Add方法。实际上,我的cmd.Paramater只使用了4种方法。不过,我添加了所有必要的库。你有什么建议吗?