c# - Sqlite Like 查询 xamarin 表单
问题描述
我正在尝试在 xamarin 中点赞,但是查询返回给我的只是一个数字,我已经在 DBowser sqlite 中对其进行了测试,并且可以正常工作,但在这里不行。会出现什么错误?
询问
public Task<Produtos> GetProdutosAsyncBy(String searchField)
{
string searchNoSpaces = searchField.Replace(" ", "%");
var get_docnumb = database.ExecuteScalarAsync<Produtos>("SELECT *" +
" FROM Produtos WHERE Design LIKE '%" + searchNoSpaces + "%'");
return get_docnumb;
}
来电查询
public async void SearchProdutoQuery ()
{
var qwe = App.Database.GetProdutosAsyncBy(searchBar_produtos.Text).Result;
}
解决方案
You can use Scalar to return something as below:
public int GetCountProdutosAsyncBy(String searchField)
{
string searchNoSpaces = searchField.Replace(" ", "%");
var get_docnumb = database.ExecuteScalarAsync<Produtos>("SELECT COUNT(*) FROM Produtos WHERE Design LIKE '%" + searchNoSpaces + "%'");
return get_docnumb;
}
But to solve your problem you can't use Scalar, you need to QUERY and to avoid SQL injection you should use parameter:
public Task<Produtos> GetProdutosAsyncBy(String searchField)
{
string searchNoSpaces = searchField.Replace(" ", "%");
var get_docnumb = database.Query<Produtos>("SELECT * FROM Produtos WHERE Design LIKE ?", "%" + searchNoSpaces + "%");
return get_docnumb;
}
推荐阅读
- c++ - 将 FLOAT 值插入 mysql 表
- c# - 为什么我的项目中的程序集绑定失败?
- javascript - FirebaseError:[code=invalid-argument]:函数 Query.where() 需要有效的第三个参数,但未定义
- python - 我的目录应用显示空白页,我该怎么办?
- html - 将 html 、 css 页面连接到页眉和页脚
- c# - ASP.NET Core 3.1 SignalR:未调用方法
- kotlin-coroutines - Kotlin Coroutines:Hot Flow 掌握线程
- react-native - 在带有 wix/react-native-navigation 的模态中使用 react-native-gesture-handler (RNGH)
- c - 是否可以查看/修改通用 Windows 虚拟打印驱动程序的代码以重定向“打印”文件的发送位置?
- python - 从漂亮的汤对象中提取文本时出现类型错误