webForumDet fria alternativet

DAL ala Microsoft

4 svar · 592 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 076 inlägg
#1

Har kikat lite på Microsofts DAL (xsd-fil) men har nu stöt på ett problem:
Har lagt till en tableadapter samt ett par SP:s som samtliga returnerar samma kolumner ur databasen.
Men nu vill jag lägga till en SP som inte returnerar samma kolumner och då blir VS sur och säger:
The new command text returns data with schema different from the schema of the main query. Check your query´s command text if this is not desired.

Man kan klicka OK och lägga till SP:n ändå men när jag sedan vill använda data ur denna metod så får jag:
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
Jag antar att det är för att SP:n inte returnerar samtliga kolumner, eller?
Hämtningen av SP:n ser ut så här:

public class ReportsBLL
{
    private ReportsTableAdapter _reportsAdapter = null;
    protected ReportsTableAdapter Adapter
    {
        get
        {
            if (_reportsAdapter == null)
                _reportsAdapter = new ReportsTableAdapter();
            return _reportsAdapter;
        }
    }

    public MyDAL.ReportsDataTable GetReportsByDepartmentIdAndReportDate(int DepartmentId, DateTime ReportDate)
    {
        return Adapter.GetReportsByDepartmentIdAndReportDate(DepartmentId, ReportDate);
    }

    public MyDAL.ReportsDataTable GetDepartmentReportedDates(int DepartmentId)
    {
        return Adapter.GetDepartmentReportedDates(DepartmentId);
    }
}

GetDepartmentReportedDates är SP:n som skiljer sig och som jag inte får att funka.

emissionMedlem sedan dec. 19996 721 inlägg
#2

Du får bestämma dig för vad du ska göra. GetDepartmentReportedDates bör väl inte returnera en ReportsDataTable?

doggelitoMedlem sedan juni 20003 076 inlägg
#3

emission skrev:

Du får bestämma dig för vad du ska göra. GetDepartmentReportedDates bör väl inte returnera en ReportsDataTable?

Hmm, nä det bör den väl inte, antar jag!

Greppar inte detta än, om jag har en tableadapter med en sp som returnerar ex. RapportId, Rapport, Datum från tabellen Rapporter.
Sen har jag en sp som returnerar ex. Rapport, count(*)... också från den tabellen, hur gör jag då?
Måste jag göra en ny tableadapter då, typ: ReportTableAdapter2 och lägga sp:n där i?
Och sen ytterligare en och en för varje sp som skiljer sig??? Även fast dom hämtar data från samma tabell men med lite olika data.
Hemskt många tableadapters blir det i så fall! :q

emissionMedlem sedan dec. 19996 721 inlägg
#4

Japp, men så är det. En TableAdapter är inte nödvändigtvis knuten till en och samma tabell i databasen, men den ska alltid returnera DataTables av samma typ.

doggelitoMedlem sedan juni 20003 076 inlägg
#5

Okidoki!
Det gäller väl kanske bara att få in tänket så ter det sig kanske inte så konsigt med alla adaptrar.

Tack så länge! :bire

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)