Xamarin表单中的SQLite数据库搜索
我有一个带有列表的搜索栏。该列表将显示数据库中的所有建议。我的搜索查询不起作用的问题。我得到零计数。我不确定我的查询是否有正确的语法Xamarin表单中的SQLite数据库搜索,sqlite,xamarin,xamarin.forms,Sqlite,Xamarin,Xamarin.forms,我有一个带有列表的搜索栏。该列表将显示数据库中的所有建议。我的搜索查询不起作用的问题。我得到零计数。我不确定我的查询是否有正确的语法 private void NameSearch_SearchButtonPressed(object sender, EventArgs e) { var keyword = NameSearch.Text; var db = DependencyService.Get<ISQLiteDB>();
private void NameSearch_SearchButtonPressed(object sender, EventArgs e)
{
var keyword = NameSearch.Text;
var db = DependencyService.Get<ISQLiteDB>();
var conn = db.GetConnection();
var getCaf = conn.QueryAsync<ContactsTable>("SELECT FileAS FROM tblContacts WHERE FileAs LIKE '%?%'", keyword);
var resultCount = getCaf.Result.Count;
if (resultCount > 0)
{
var result = getCaf.Result;
lstName.ItemsSource = result;
}
}
private void NameSearch\u search按钮按下(对象发送方,事件参数e)
{
var关键字=NameSearch.Text;
var db=DependencyService.Get();
var conn=db.GetConnection();
var getCaf=conn.querySync(“从tblContacts中选择FileAS,其中FileAS类似“%”?%”,关键字);
var resultCount=getCaf.Result.Count;
如果(结果计数>0)
{
var result=getCaf.result;
lstName.ItemsSource=结果;
}
}
在您的查询中,它包含“FileAS
”和“FileAS
”区分大小写的问题。确保它们都是相同的,并且与列名完全相同
将查询更改为:
conn.QueryAsync<ContactsTable>($"SELECT FileAS FROM tblContacts WHERE FileAS LIKE '%{ keyword }%'").ToList();
conn.querySync($“从tblContacts中选择FileAS,其中FileAS类似“{keyword}%”)。ToList();
或
要减少拼写错误,可以尝试以下Lambda表达式作为查询:
conn.Table<ContactsTable>().Where(x => x.FileAS.Contains(keyword)).ToList();
conn.Table().Where(x=>x.FileAS.Contains(关键字)).ToList();
因此,您的最终代码应该如下所示:
private void NameSearch_SearchButtonPressed(object sender, EventArgs e)
{
var keyword = NameSearch.Text;
var db = DependencyService.Get<ISQLiteDB>();
var conn = db.GetConnection();
var getCaf = conn.Table<ContactsTable>().Where(x => x.FileAS.Contains(keyword)).ToList();
var resultCount = getCaf.Count();
if (resultCount > 0)
{
lstName.ItemsSource = getCaf;
}
}
private void NameSearch\u search按钮按下(对象发送方,事件参数e)
{
var关键字=NameSearch.Text;
var db=DependencyService.Get();
var conn=db.GetConnection();
var getCaf=conn.Table()。其中(x=>x.FileAS.Contains(关键字)).ToList();
var resultCount=getCaf.Count();
如果(结果计数>0)
{
lstName.ItemsSource=getCaf;
}
}
希望这能解决您的问题。在您的查询中,它包含“
FileAS
”和“FileAS
”区分大小写的问题。确保它们都是相同的,并且与列名完全相同
将查询更改为:
conn.QueryAsync<ContactsTable>($"SELECT FileAS FROM tblContacts WHERE FileAS LIKE '%{ keyword }%'").ToList();
conn.querySync($“从tblContacts中选择FileAS,其中FileAS类似“{keyword}%”)。ToList();
或
要减少拼写错误,可以尝试以下Lambda表达式作为查询:
conn.Table<ContactsTable>().Where(x => x.FileAS.Contains(keyword)).ToList();
conn.Table().Where(x=>x.FileAS.Contains(关键字)).ToList();
因此,您的最终代码应该如下所示:
private void NameSearch_SearchButtonPressed(object sender, EventArgs e)
{
var keyword = NameSearch.Text;
var db = DependencyService.Get<ISQLiteDB>();
var conn = db.GetConnection();
var getCaf = conn.Table<ContactsTable>().Where(x => x.FileAS.Contains(keyword)).ToList();
var resultCount = getCaf.Count();
if (resultCount > 0)
{
lstName.ItemsSource = getCaf;
}
}
private void NameSearch\u search按钮按下(对象发送方,事件参数e)
{
var关键字=NameSearch.Text;
var db=DependencyService.Get();
var conn=db.GetConnection();
var getCaf=conn.Table()。其中(x=>x.FileAS.Contains(关键字)).ToList();
var resultCount=getCaf.Count();
如果(结果计数>0)
{
lstName.ItemsSource=getCaf;
}
}
希望这能解决您的问题。谢谢,我一发布就看到了文件,哈哈。你的代码很有用谢谢谢谢你我一发布就看到了文件哈哈。您的代码工作正常谢谢您是否在.net标准或pcl中工作?您是否在.net标准或pcl中工作?