我想要一种简单快速的方法来查看Xamarin中sqlite数据库中是否存在特定名称。我尝试了很多像这样的方法,但要么全部返回true,要么全部返回false。
public bool Check(string Name)
{
try
{
using (var connection = new SQLiteConnection(System.IO.Path.Combine(folder, "PictureDB_GM.db3")))
{
if (connection.Query<PictureDB>("SELECT * FROM Person Where Name=?", Name) == null)
return true;
else
return false;
}
}
catch (SQLiteException ex)
{
Log.Info("SQLiteEx", ex.Message);
return false;
}
}
目前,我正在使用它:
for (int y = 0; y < lstSource.Count; y++)
{
if (lstSource[y].Name == view.Resources.GetResourceName(item.ImageResourceId))
{
ImageService.Instance.LoadCompiledResource(view.Resources.GetText(Resource.Drawable.Truee)).Into(img_2);
break;
}
else
ImageService.Instance.LoadCompiledResource(view.Resources.GetText(Resource.Drawable.empty)).Into(img_2);
}
它可以很好地处理很少的条目,但是如果数据库有超过50个条目,它需要花费很长时间并使应用程序出错并开始破碎。
那么有没有干净的方法或更好的方法呢?
答案 0 :(得分:0)
使用此
更好的预备 if(MainActivity.db.selectTablePerson().Where(i => i.Name == view.Resources.GetResourceName(item.ImageResourceId)).FirstOrDefault()==null)
ImageService.Instance.LoadCompiledResource(view.Resources.GetText(Resource.Drawable.empty)).Into(img_2);
else
ImageService.Instance.LoadCompiledResource(view.Resources.GetText(Resource.Drawable.Truee)).Into(img_2);