2
我想用JSON_VALUE
查询到我的表中的数据:C#小巧玲珑使用JSON_VALUE为SQL Server 2016
var str = "123";
var value = "Name"
using(var conn = GetMyConnection())
{
var result = conn.QueryFirstOrDefault<string>(
@"SELECT [Id] FROM [dbo].[MyTable]
WHERE JSON_VALUE([JsonColumn], @MyQuery) = @Str",
new
{
MyQuery = $"$.{value}",
Str = str
}
);
}
我尝试这在SQL Server中,这是工作:
SELECT [Id] FROM [dbo].[MyTable]
WHERE JSON_VALUE([JsonColumn], '$.Name') = '123'
我应该如何调整我的代码?
我建议你创建一个存储过程并放弃你的json字符串作为参数并在那里处理它。 – Valkyrie
我在本地环境中试过这段代码。它能正常工作。代码有什么问题? –
@sarslan它不会工作,因为OP将它传递为文字,而在C#中,他试图将它作为变量传递。 SQL Server中的唯一方法是使用动态SQL或在C#代码中构建查询字符串。 – lad2025