28. januar 2008 - 20:56Der er
8 kommentarer og 1 løsning
hvis på list 2 så skal den ikke skrive på list 1
hej er der en haj der kan hjælpe mig med denne. jeg henter 2 arraylist fra min Database det første der står foran "," er begge cpr nr men fra 2 forskellige tabeller.
der er at hvis cpr nr findes på list2 skal den ikke skrive den på list1 ellers skal den . men hvordan gør jeg det nemmest?
ArrayList List2 = DataAccessWrite.reader("SELECT cpr,startnr FROM konkur_afholdt_tbl WHERE (((konkur_afholdt_tbl.KonID)= " +this.comboBox1.SelectedValue +"))"); ArrayList List = DataAccessWrite.reader("SELECT skytte_tbl.cpr, skytte_tbl.Fornavn, skytte_tbl.Efternavn, Klub_tbl.klub, klasser_tbl.klasse_tekst FROM klasser_tbl INNER JOIN (Klub_tbl INNER JOIN skytte_tbl ON Klub_tbl.klubid = skytte_tbl.klubid) ON klasser_tbl.klasse_id = skytte_tbl.klasseid;");
if (List.Count == 0) { MessageBox.Show("Det ikke muligt at vælge skytter til denne konkurrence"); } else for (int i = 0; i < List2.Count; i++) { this.listBox2.Items.Add(List2[i]); }
en lille ting; du må ikke (i.flg. datatilsynet, have cpr. numre i din database (uden at de er krypteret) men fuck det...
Men
i den første vælger du nogen:
SELECT cpr,startnr FROM konkur_afholdt_tbl WHERE (((konkur_afholdt_tbl.KonID)= " +this.comboBox1.SelectedValue +"))
i den næste vælger du "bare" dem der ikke er med, f.eks: SELECT cpr,startnr FROM konkur_afholdt_tbl WHERE NOT (((konkur_afholdt_tbl.KonID)= " +this.comboBox1.SelectedValue +"))");
problemet er jeg skal have alle skytte med (måske 100 stk) fra Skytte_tbl men dem der er i konkur_afholdt_tbl skal så ikke være med i den liste, fordi man kan ikke sætte samme skytte på listen konkur_afholdt
i den første sql SELECT cpr,startnr FROM konkur_afholdt_tbl WHERE (((konkur_afholdt_tbl.KonID)= " +this.comboBox1.SelectedValue +"))
i nr. 2
SELECT skytte_tbl.cpr, skytte_tbl.Fornavn, skytte_tbl.Efternavn, Klub_tbl.klub, klasser_tbl.klasse_tekst FROM klasser_tbl INNER JOIN (Klub_tbl INNER JOIN skytte_tbl ON Klub_tbl.klubid = skytte_tbl.klubid) ON klasser_tbl.klasse_id = skytte_tbl.klasseid WHERE NOT skytte_tbl.cpr IN (SELECT cpr,startnr FROM konkur_afholdt_tbl WHERE (((konkur_afholdt_tbl.KonID)= " +this.comboBox1.SelectedValue +")))
Der mangler en ), ] eller et element i forespørgselsudtrykket "NOT skytte_tbl.cpr IN (SELECT cpr,startnr FROM konkur_afholdt_tbl WHERE (((konkur_afholdt_tbl.KonID)=1))"
Du har skrevet en underforespørgsel, der kan returnere mere end ét felt uden at bruge det reserverede ord EXISTS i hovedforespørgslens FROM-delsætning. Ret SELECT-sætningen i underforespørgslen, så den kun kræver et felt
jamen det har jeg jo gjort, og du har accepteret det ;o)))
håber at du kan forstå mit svar; du fravælger egentlig bare dem du ikke viller have med før
;o)
Synes godt om
Ny brugerNybegynder
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.