SQL-запрос внутри контроллера возвращает ноль - PullRequest
0 голосов
/ 21 марта 2019

Сначала я пытаюсь сгенерировать значение, а затем пытаюсь передать это значение в 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();
        }
    }
}

Ответы [ 2 ]

1 голос
/ 21 марта 2019

Вам необходимо передать 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();
        }
    }
}
0 голосов
/ 22 марта 2019

Индекс ActionResult (View Model) говорит, что вы передаете модель в контроллер - если у вас есть данные в модели, вы должны выполнить поиск в модели и получить результат как часть вашей модели представления

Доступ к данным в моем коде обычно осуществляется с помощью базы данных в своем классе в моделях - и НИЧЕГО, что поражает базу данных, обычно в хранимой процедуре в базе данных - чтобы избежать внедрения SQL.Создайте свою модель представления, чтобы передать правильные данные для контроллера, чтобы передать в представление.

Протестируйте ваш сохраненный процесс в базе данных, а затем используйте его на уровне доступа к данным и сохраните его в классе Model для внедрения в ваши контроллеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...