Avatar billede c-sharp Nybegynder
22. maj 2006 - 11:57 Der er 4 kommentarer og
1 løsning

Hjælp til håndtering af data

Jeg har lavet en søg funktion på en side, den søger i forskellige tabeller,da hjemmesiden er bygget op af forskellige moduler der bruger hver deres tabel.

Jeg har følgende søgning:

            string sql = "SELECT sideIndex, menunavn, hovedmenu " +
                        "FROM tblSider " +
                        "WHERE kundenr = " + System.Configuration.ConfigurationManager.AppSettings["forhandlernr"] +
                        " AND tekstsog like '%" + soegeord + "%' OR menunavn like '%" + soegeord + "%';";

            string sql_nyheder = "SELECT nyhedsnr " +
                                    "FROM tblnyheder " +
                                    "WHERE kundenr = " + System.Configuration.ConfigurationManager.AppSettings["forhandlernr"] +
                                    " AND (overskrift like '%" + soegeord + "%' OR teaser like '%" + soegeord + "%' OR tekst like'%" + soegeord + "%');";

            string sql_ref = "SELECT referencenr " +
                                "FROM tblReferencer " +
                                "WHERE kundenr = " + System.Configuration.ConfigurationManager.AppSettings["forhandlernr"] +
                                " AND (firmanavn like '%" + soegeord + "%');";

            string sql_medarbejder = "SELECT medarbejdernr " +
                                    "FROM tblMedarbejder " +
                                    "WHERE kundenr = " + System.Configuration.ConfigurationManager.AppSettings["forhandlernr"] +
                                    " AND (navn like '%" + soegeord + "%' OR titel like '%" + soegeord + "%');";

            DataSet ds = SqlHelper.ExecuteDataset(connStr, CommandType.Text, sql + sql_nyheder + sql_ref + sql_medarbejder);


Det retunere mig så 4 tabeller i mit dataset, dem skal jeg have analyseret* og derefter opbygget en datareader (el. dataset) som jeg overdrager til mnin repeater.

Kan det gøres smartere?

* Når jeg skriver analyseret betyder det at jeg skal have kigget dem igenne, og f.eks. hvis der er data i "Table2" skal der bare tilføje en ny række, mens hvis der er data i Tabel3 skal alle de rækker der er i tabel3 flyttes over i den nye datareader
Avatar billede snepnet Nybegynder
22. maj 2006 - 14:07 #1
Hej C :o)

Jeg synes du skal benytte parametre istedet for at strikke din sql'er sammen som du gør.
Det er sikrere, og så slipper du endda for manuelt at sætte ping'er ind.

Normalt ville jeg selv foretrække at have en lidt mere typestærkt adgang til data, men det har du nok selv filosoferet over kunne jeg forestille mig.

Husk at du kan benytte views også - de kan realisere sortering og filtrering af data i datatables.

Generelt er jeg ikke meget for at returnere readers fra datalag, sådan som du beskriver.

Mhv
Avatar billede c-sharp Nybegynder
22. maj 2006 - 14:23 #2
Hej snepnet, godt at se dig :~)


Det med parameterne har du helt ret i (Du har jo altid ret :-))

Hvad mener du med en mere "typestærk adgang til data"?

Er heller ikke helt med på hvad du mener med at "rerunere readers fra datalag"?


Hvordan vil du forslå at jeg løser opgaven?
Avatar billede snepnet Nybegynder
22. maj 2006 - 14:56 #3
Med typestærk adgang til data mener jeg, at du arbejder med tingene sådan her (bare et tænkt eksempel):

Hus hus = Hus.Retrieve(someHouseId);
PersonListe beboere = hus.GetBeboere();
foreach(Person beboer in beboere)
{
  Console.WriteLine(beboer.Navn);
}

Istedet for sådan noget som dette:
DataSet ds = SqlHelper.ExecuteDataset(...);

DataRow hus = ds.Tabels[0].Rows[0];
DataRow[] beboere = hus.GetChildRows(someRelation);
foreach(DataRow beboer in beboere)
{
  Console.WriteLine(beboer["Name"].ToString());
}

Det med readers skrev jeg bare fordi du selv nævnte det.

Mvh
Avatar billede c-sharp Nybegynder
04. juli 2006 - 09:36 #4
Den må vi lige tage på et andet tidspunkt ;~}

smid et svar så kaster jeg nogle point i din retning.
Avatar billede snepnet Nybegynder
04. juli 2006 - 14:19 #5
Kommer her :o)
Mvh
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