Avatar billede beef12 Nybegynder
10. november 2004 - 13:06 Der er 10 kommentarer og
1 løsning

Indsættelse af komma efter hver række

Jeg har lavet et lille program der kan gennemløbe en database og spytte et view ud efter særlige kriterier...

Min problem er at jeg sagtens kan generere viewet, så det ser f.eks. sådan ud

create view
as
select
a.col1
a.col2
from
a

Det eneste jeg manger er at lave et komma imellem a.col1 og b.col2 uden at der kommer et komma efter a.col2.

Her ses lidt af min kode der outputter det ovenstående:



string output_header;
output_header =
"create view "+View_name+"\nas\nselect\n"+
"\n";
string output = "";
string output_from = "";
           
while(rdr.Read())
{
output = output + rdr[0].ToString()+"."+rdr[1].ToString()+"\n";
output_from = "from\n"+rdr[0].ToString();
}
rdr.Close();

Console.WriteLine(output_header);
Console.WriteLine(output);
Console.WriteLine(output_from);
Avatar billede beef12 Nybegynder
10. november 2004 - 13:07 #1
altså så det ser sådan ud:
create view
as
select
a.col1,
a.col2
from
a
Avatar billede arne_v Ekspert
10. november 2004 - 13:13 #2
Det er da vist C# !

bool first = true;           
while(rdr.Read())
{
output = output + (first?"":",") + rdr[0].ToString()+"."+rdr[1].ToString()+"\n";
first = false;
output_from = "from\n"+rdr[0].ToString();
}
Avatar billede beef12 Nybegynder
10. november 2004 - 13:20 #3
ja - hovsa :-) Fuck, jeg troede at det var Perl jeg kodede i :-p
Avatar billede beef12 Nybegynder
10. november 2004 - 13:28 #4
Smart trick du ku' der. Men jeg lavede lidt om på det, da det ikke virkede. Byttede rundt på true og false, samt flyttede first, så den ligger bagerst. Sådan der:


bool first = false;   
           
while(rdr.Read())
{
output = output +  rdr[0].ToString()+"."+rdr[1].ToString() +(first?"":",")+"\n";
first = true;
output_from = "from\n"+rdr[0].ToString();
}


Men jeg havde fundet ud af ellers, så du skal da helt sikkert ha' points. Smid et svar :-)
Avatar billede beef12 Nybegynder
10. november 2004 - 13:29 #5
* men jeg havde aldrig fundet ud af det ellers *

Det var det jeg ville ha skrevet :-)
Avatar billede arne_v Ekspert
10. november 2004 - 13:32 #6
ok
Avatar billede arne_v Ekspert
10. november 2004 - 13:33 #7
(jeg kan ikke helt forstå den måde du vendte det på, men virker det så skidt pyt)
Avatar billede beef12 Nybegynder
10. november 2004 - 13:43 #8
er det ikke fordi den rækkerne i omvendt rækkefølge?
Avatar billede beef12 Nybegynder
10. november 2004 - 14:14 #9
hov det var vist ikke helt rigtigt alligevel. Jeg ville jo egentlig gerne ha' at der kom altid komma undtaget ved siste sække og kun ved første række.

f.eks
col1,
col2,
col3,
col4
Avatar billede arne_v Ekspert
10. november 2004 - 14:20 #10
prøvede du med mit forslag ?
Avatar billede beef12 Nybegynder
10. november 2004 - 16:37 #11
sådan her, nu virker skidtet

bool remove_last_comma = true;   
while(rdr.Read())
{
output =  rdr[0].ToString()+"."+rdr[1].ToString() +(remove_last_comma?"":",")+"\n" +output;
remove_last_comma = false;
output_from = "from\n"+rdr[0].ToString();
}
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
Kurser inden for grundlæggende programmering

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