我尝试先生成一个值,然后尝试将该值传递给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();
}
}
}
答案 0 :(得分:1)
您需要将参数名称和值传递给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();
}
}
}
答案 1 :(得分:0)
ActionResult索引(查看模型) 说您正在将模型传递给控制器-如果模型中包含数据,则应在模型中进行查找,并将结果作为视图模型的一部分
我的代码中的数据访问通常是通过Models中其类中的数据库进行的-击中数据库的任何内容通常都在数据库的存储过程中-以避免SQL注入。创建视图模型以传递正确的数据,以使控制器传递到视图。
在数据库中测试您存储的proc,然后在数据访问层中使用,并将其存储到Model类中,以将其注入到控制器中。