Avatar billede peter_svendsen Nybegynder
31. oktober 2006 - 17:08 Der er 5 kommentarer og
1 løsning

join tabeller?

Jeg har en tabel med nogle adresser m.m.
Tabellen bliver vist i et datagrid.
I tabellen er der en værdi der indeholder en status. ex. Overført, Fundet, Mangler kontrol.

Under oprettelsen af denne løsning var jeg godt klar over at den kunne give problemer på sigt, og de er så nået til mig nu, da jeg sidder og leger med en oversættelse.

Er det muligt at erstatte min statusværdi med tal, og så vha. join med en anden tabel få vist det som tekst?

eller er der nogen der har en anden snedig måde at gribe tingene an på?

Håber der er nogen der kan hjælpe.
Avatar billede skov_p Praktikant
31. oktober 2006 - 22:37 #1
Table1
Status (int)
StatusText(string)

Table2
Status (int)
Info1 (...)
Info2 (...)

SELECT Table1.StatusText, Table2.Info1, Table2.Info2 FROM Table1 INNER JOIN Table2 ON
Table1.Status = Table2.Status
Avatar billede peter_svendsen Nybegynder
01. november 2006 - 09:18 #2
Min data gemmes i xml filer, som indlæses i DataSets. Hvis almindelig SQL håndtering af mine DataTables er muligt på en eller anden måde vil det være genialt, men jeg er ikke lige faldet over hvordan. Alle de eksempler jeg har set med almindelig SQL SELECT er i forbindelse med at data hentes fra f.eks. SQL Server.

Min data vises i DataGrids, så det er nødvendigt at jeg stadig kan manipulere min data gennem dette med indsæt, slet række og lignende.

Jeg har fundet noget der lugter lidt af det, men det ser ikke umiddelbart ud til det overføre hele funktionaliteten der er behov for ved DataGrids
http://support.microsoft.com/kb/326080

Bør nok også nævne at jeg desværre stadig arbejder i Framework 1.1
Avatar billede jimbo22 Nybegynder
07. november 2006 - 00:34 #3
opret en datatable som indeholder mappingen mellem statusværdi og tekst.
opret en relation mellem denne datatable og den oprindelige datatable.

indsæt en column i dit datagrid defineret via JoinTextBoxColumn klassen vist nedenfor. that's it. skal jeg uddybe så sig til.


    public class JoinTextBoxColumn : MBDataGridTextBoxColumn
    {

        private string relationName;
        private DataColumn parentField;

        public JoinTextBoxColumn(string RelationName, DataColumn ParentField)
        {
            relationName = RelationName;
            parentField = ParentField;
        }

        protected override object GetColumnValueAtRow(CurrencyManager cm, int RowNum)
        {

            try
            {
                DataRow dr = ((DataView)cm.List)[RowNum].Row;
                DataRow drParent = dr.GetParentRow(relationName);
                return drParent == null ? "" : drParent[parentField].ToString();
            }
            catch
            {
                return "-"; 
            }
        }

    }
Avatar billede peter_svendsen Nybegynder
10. november 2006 - 12:15 #4
Tak for svaret, jeg kigger på det om snart og vender tilbage.
Avatar billede peter_svendsen Nybegynder
27. februar 2007 - 14:49 #5
Jimbo beklager den ekstremt lange svartid. Jeg havde totalt glemt denne tråd.

Jeg var af andre årsager nødsaget til at opgradere hele projektet til VS 2005, hvor der også er mere elegante måder at løse problemet på.

Du har dog stadig fortjent de point der er afsat her, da din løsning med sikkerhed kunne have løst problemet i VS 2003.
Avatar billede peter_svendsen Nybegynder
19. juni 2007 - 10:46 #6
Stadig intet svar fra Jimbo22, så jeg lukker tråden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester