Avatar billede entracore Nybegynder
12. december 2002 - 00:47 Der er 13 kommentarer og
2 løsninger

Udskriv recordset

Hey

Nednestående kode vil generere en fejl.

Console.Writeline DataReaderObject[Tabel.ColumnName];

Hvordan skal man rigtig gøre det i C# ?????
Avatar billede simon.ulsnes Nybegynder
12. december 2002 - 07:16 #1
Sådan:

Console.WriteLine(DataReaderObject[Tabel.ColumnName]);

Hvad er det du vil?
Avatar billede entracore Nybegynder
12. december 2002 - 10:42 #2
Undskyld - det fremgår ikke rigtig af ovenstående.

Hvis man i sin forspørgsel joiner flere tabeller hvor et eller flere af kolonnenavne er ens skal man angive hvilken kolonne man vil udskrive ved skrive tabelnavnet foran kolonnenavnet.

f.eks.

Tabel1          Tabel2
ID              ID
Name            Text
Email          Path

Jeg forspørger på begge tabeller men vil gerne udskrive ID'et fra Table1. I VB vil man skrive: Table1.ID

Men gør man det i C# opstår der en fejl... så jeg vil gerne vide det så gøres ?
Avatar billede entracore Nybegynder
12. december 2002 - 10:45 #3
Fejlbeskeden er som følger:

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IndexOutOfRangeException: Table1.ID
Avatar billede mufoxe Nybegynder
12. december 2002 - 11:44 #4
Hvorfor ikke bare navngive dine kolonner unikt i din query?
Avatar billede burningice Nybegynder
12. december 2002 - 13:38 #5
du husker ved at sætte "" omkring??

Console.Writeline DataReaderObject["Tabel.ColumnName"];
Avatar billede entracore Nybegynder
12. december 2002 - 13:56 #6
Jeg husker at sætte " " omkring mit tabel og kolonnenavn.

At navngive mine kolonner i min forspørgsel har jeg selv overvejet - men det er ikke en mulighed.. og ville være meget besværligt hvis det drejer sig om mange kolonner ;-)
Avatar billede burningice Nybegynder
12. december 2002 - 14:04 #7
du skal "navngive" dem i din query

"SELECT tabel1.id as id1, tabel2.id as id2 osv"

på den måde kan du hente tabel1.id ud med feltnavnet id1
Avatar billede simon.ulsnes Nybegynder
12. december 2002 - 15:41 #8
Table1.ID-1 skulle kunne klare det... det er fordi arrays i C# er 0-baserede, mens de starter ved 1 i VB/VB.NET...

// Simon
Avatar billede burningice Nybegynder
12. december 2002 - 15:54 #9
du skal jo også huske at flytte courseren en frem... just in case

DataReaderObject.Read();
Console.Writeline DataReaderObject[Tabel.ColumnName];
Avatar billede entracore Nybegynder
12. december 2002 - 16:51 #10
simon.ulsnes & cyberfessor >> Jeg kan ikke rigtig få jeres løsning til at virke. Det melder stadigvæk samme fejl.

Jeg poster lige min kode:

gObjRec = gObjSql.ExecuteReader();
            gObjRec.Read();

            while(gObjRec.Read())
            {
                gArrCategory.Add(gObjRec["TS_GT_C.ID"] + ";" + gObjRec["TS_GT_T.Text"]);
            }
Avatar billede burningice Nybegynder
12. december 2002 - 17:20 #11
gObjRec = gObjSql.ExecuteReader();
            while(gObjRec.Read())
            {
                gArrCategory.Add(gObjRec["TS_GT_C.ID"].ToString() + ";" + gObjRec["TS_GT_T.Text"].ToString());
            }

??
Avatar billede entracore Nybegynder
12. december 2002 - 17:33 #12
Desværre.. fejlen er: System.IndexOutOfRangeException: TS_GT_C.ID
Avatar billede kichian Nybegynder
22. december 2002 - 15:02 #13
Du bliver nødt til at fjerne tabelnavnet TS_GT_C og istedet kun hente kun læse gObjRec["ID"].ToString(), eller hvis du insiterer på at have to felter der hedder det samme, så hent dem vha. indexnummeret, ie. gObjRec[2].ToString()
Avatar billede kichian Nybegynder
22. december 2002 - 15:06 #14
I øvrigt bruger du jo heller ikke TS_GT_T.ID i din kode, så hvorfor trække den med ud i din select?
Avatar billede kichian Nybegynder
22. december 2002 - 15:09 #15
Og sidst men ikke mindst er det dårlig navngivning at du bruger navnet ID i begge dine tabeller.
Jeg ville i stedet bruge : COMMENT_ID og TEXT_ID til tabellerne Comments og Texts
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