none
Datensätze abfragen RRS feed

  • Frage

  • Hallo Leute,
    verwende asp net core mvc (2,0)
    ich habe zwei Tabellen:
    Tasklist und Tasks

    CREATE TABLE [dbo].[TaskList] (
        [ID]          INT            IDENTITY (1, 1) NOT NULL,
        [Aufgabe]     NVARCHAR (50) NULL,
        [Status]      INT            NOT NULL,
        [zusatz]      NVARCHAR (50) NULL,
        [UserId]      NVARCHAR (450) NOT NULL,
        CONSTRAINT [PK_TaskList] PRIMARY KEY CLUSTERED ([ID] ASC)
    );
    
    CREATE TABLE [dbo].[Tasks] (
        [ID]  INT IDENTITY (1, 1) NOT NULL,
        [TaskList]  INT NULL,
        [erledigt]  BIT NOT NULL,
        [Aufgabe]  NVARCHAR (150) NULL,
        [Start]  DATETIME NULL,
        [Ende]  DATETIME NULL,
        CONSTRAINT [PK_Tasks] PRIMARY KEY CLUSTERED ([ID] ASC),
        CONSTRAINT [FK_Tasks_TaskList] FOREIGN KEY ([TaskList]) REFERENCES [dbo].[TaskList] ([ID])
    );
    In TaskList werden die Aufgaben aufgelistet und in Tasks stehen die jeweligen "Unteraufgaben".

    Jetzt möchte ich bei der Anzeige von TaskList
    Auszug Controller:

    // GET: TaskLists
    public async Task<IActionResult> Index()
    {
    var x412Context = _context.TaskList.Include(t => t.User);
    return View(await x412Context.ToListAsync());
    } 
    die Anzahl der zugehörigen Einträge aus Tasks ermitteln, welche erledigt sind und welche nicht.
    Die errechnete Prozentanzahl möchte ich dann in TaskList.Status schreiben.

    Kann mir jemand verraten wie ich das anstellen kann?
    Danke Paul

    • Bearbeitet Paul_412 Montag, 18. September 2017 15:03 änderung
    Montag, 18. September 2017 15:02

Alle Antworten

  • Hallo Paul,
    hier ist eine Stored procedure die soll das erledigen.

    create procedure usp_tasklistupdate as
    begin
    update  tl
    set tl.Status = (select
    case when count(*) >0
    then 1 else 0 end 
    from tasks 
    where tasks.TaskList = tl.ID)
    from TaskList tl
    end
    exec usp_tasklistupdate

    Der Grund warum ich hier die SQL wähle ist das ein Update der Datenbank für einen derartigen Fall, aus meiner Sicht ganz klar, in der Datenbank geschehen sollte.

    Die SP musst Du sicher noch anpassen, was genau Du da nach Status haben möchtest ist mir nicht klar.
    Den Aufruf mittels EF soll hier beschrieben sein:
    http://www.entityframeworktutorial.net/EntityFramework4.3/execute-stored-procedure-using-dbcontext.aspx
    Der Aufruf aus ADO.NET soll hier nachzulesen sein:
    https://support.microsoft.com/de-de/help/310070/how-to-call-a-parameterized-stored-procedure-by-using-ado-net-and-visu

    HTH

    Grüße Alexander


    Samstag, 23. September 2017 11:57