SQL Server выдает ошибку: данные пустые. Этот метод или свойство нельзя вызывать для значений Null - PullRequest
0 голосов
/ 22 января 2019

У меня такая ситуация, я пытаюсь вызвать хранимую процедуру, чтобы получить список задач с нулевым значением ProjectId.Я проверил хранимую процедуру, и она работает, но по коду нет.Что я делаю не так?

Вид:

@foreach (var item in Model.Tasks)
    {
        @if (item.ProjectId == null)
        {
            <tr data-toggle="RecEdit" data-url="@(Url.Action("Edit") + "/" + item.TaskId)">
                <td style="width: 20%">@item.Title</td>
                <td style="width: 20%">@item.Description</td>
            </tr>
        }

    }

Это класс модели:

public class CreateTaskVM
{
    public Task task {get; set;}
    public ICollection<Task> Tasks { get; set; }
    public ICollection<Project> projects {get; set;}
    public ICollection<Employee> Employees { get; set; }
    public ICollection<ProjectStatus> StatusTypes { get; set; }
}

А это мой контроллер:

public IActionResult RecTask()
{
        CreateTaskVM mytasks = new CreateTaskVM();

        var param = new SqlParameter("@ProjectId", "Null");
        mytasks.Tasks = context.Task.FromSql($"EXEC [dbo].[uspGET_Tasks] @ProjectId", param).ToList();

        return View(mytasks);
}

Также я пытался сделать это в Identity, но по какой-то причине MV обнулились.Я просто хочу представить список задач со значением ProjectId, равным нулю.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Вы должны сделать свое свойство «projectId» как обнуляемое свойство.

0 голосов
/ 22 января 2019

SqlParameter содержит строку "Null".

Если вы хотите отправить нулевое значение хранимой процедуре, попробуйте использовать DBNull.Value:

var param = new SqlParameter("@ProjectId", DBNull.Value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...