首页 > 解决方案 > 控制器内的sql查询返回null

问题描述

我试图先生成一个值,然后尝试将该值传递给 SQL 查询,但我的查询返回 null。我尝试调试我的代码,我在 myvalue 变量中有值。

我不确定它可以按照我正在做的方式完成。可以传递我下面的值吗?如果没有任何建议,请。

public ActionResult Index(View model)
{
    using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["DB_MYTABLE_CONNECTION_STRING"].ConnectionString))
    {
        var myvalue = MyUtil.GenerateKey(model.Name, model.phonenumber);

        con.Open();
        string query = "select count(*) from customer where key = @myvalue";


        using (var cmd = new SqlCommand(query, con))
        {
            int rowsAmount = (int)cmd.ExecuteScalar();
        }
    }
}

标签: c#sql-serverasp.net-mvc

解决方案


您需要向 SqlCommand 传递参数名称和值:

public ActionResult Index(View model)
{
    using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["DB_MYTABLE_CONNECTION_STRING"].ConnectionString))
    {

        var myvalue = MyUtil.GenerateKey(model.Name, model.phonenumber);

        con.Open();
        string query = "select count(*) from customer where  key=@myvalue";

        using (var cmd = new SqlCommand(query, con))
        {
            cmd.Parameters.Add("@myvalue", myvalue);
            int rowsAmount = (int)cmd.ExecuteScalar();
        }
    }
}

推荐阅读