c# - 将在 foreach 循环中生成的 Azure Cosmos Db SQL-API 语句转换为参数化语句
问题描述
我正在尝试将以下工作 COSMOS DB SQL 语句转换为 COSMOS DB 的 SQL 中的参数化语句。
我正在努力的部分是在 for each 循环中为参数化查询创建参数。
例如,我有一个Dictionary<string,string>
包含我需要搜索的值的键值对的对象。
我通过在 foreach 循环中将对象的键值对添加Dictionary<string,string>
到 SQL 语句来构建查询,但为了安全起见,我想将其转换为参数化语句。
所以我需要将下面的查询转换为我正在搜索的索引键和值的参数化查询,但我不知道如何去做。
var searchDictionary = new Dictionary<string, string>();
searchDictionary.Add("Name", "Bob");
searchDictionary.Add("Surname", "Builder");
var Institiute = "test";
StringBuilder sb = new StringBuilder();
sb.Append($"SELECT top 100 * FROM c WHERE c.college =@'{Institiute}'");
foreach (var item in request.IndexData)
{
sb.Append($" and c.indexData['{item.Key}'] = '{item.Value}'");
}
var sqlQueryText = sb.ToString();
解决方案
推荐阅读
- inheritance - 如何从一个可解析的类派生
- javascript - 检查输入中的数字是否有效,然后添加它们
- python - Django:复选框选项显示为 True/False 值
- angular - Jasmine 测试服务
- php - 如何修复:windows 与 android 问题上的 curl 返回
- javascript - Angular 7 - jQuery插件,找不到功能
- haskell - 这个函数会被懒惰地评估吗?
- javascript - 使用 try finally in for await 是一个不错的选择吗?
- java - 确定一个函数是否“可以覆盖”另一个函数
- javascript - 类和数组作为参数