提问人:User_K47 提问时间:10/24/2023 最后编辑:CharliefaceUser_K47 更新时间:10/24/2023 访问量:34
如何在 ASP.NET Core的参数化方法中声明标量变量?
How to declare scalar variable in parameterized method in ASP.NET Core?
问:
我想使用参数化方法获取值,但我收到此错误
必须声明标量变量 @Category
我不知道在下面的代码中在哪里以及如何声明标量变量。
查看我尝试过的代码
[Route("TotalValue")]
[HttpGet]
public decimal TotalValue()
{
var query = "Select * from OrderDetail where Category = @Category";
string sqlDataSource = _configuration.GetConnectionString("DefaultConnection");
decimal total = 0;
using (SqlConnection con = new SqlConnection(sqlDataSource))
{
con.Open();
using (SqlCommand cmd = new SqlCommand(query, con))
{
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{
total = dr.GetDecimal(0);
}
}
}
con.Close();
}
return total;
}
答:
0赞
Neil W
10/24/2023
#1
你快到了。
创建命令后,将 @Category 参数添加到命令的参数集合中:
[Route("TotalValue")]
[HttpGet]
public decimal TotalValue()
{
var query = "Select * from OrderDetail where Category = @Category";
string sqlDataSource = _configuration.GetConnectionString("DefaultConnection");
decimal total = 0;
// If a string (amend for other data type)
string categoryToFind = "My Category To Search For";
using (SqlConnection con = new SqlConnection(sqlDataSource))
{
con.Open();
using (SqlCommand cmd = new SqlCommand(query, con))
{
cmd.Parameters.AddWithValue("@Category", categoryToFind);
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{
total = dr.GetDecimal(0);
}
}
}
con.Close();
}
return total;
}
评论
3赞
Stuck at 1337
10/24/2023
但是,不要使用 .使用起来要好得多,然后你可以内联其他重要部分,如数据类型、小数位数、精度等,而不是让 C# 猜测。AddWithValue
Add
0赞
User_K47
10/25/2023
我收到此错误“数据为空。不能对 Null 值调用此方法或属性。
评论