Flere columns end values????

Tags:    asp.net

Hej..

Jeg har lavet følgende kode der skulle indsætte noget i min databbase.. Men af en eller anden grund jeg ikke kan se kommer der altså denne fejlmeddelelse som jeg ikke rigtig kan forstå.

Umiddelbart troede jeg jeg havde kommet til at smide nogle flere ting ind end der var felter til i databasen, men det ser det ikke ud til at være..

Så nu har jeg efterhånden stirret på den kode så længe at jeg må have stirret mig blind på et eller andet. Håber i kan hjælpe

Code Behind:
Fold kodeboks ind/udKode 



Fejlmeddelelse:

Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 19.09.2008 01:42 af Bruger #11545




Indlæg senest redigeret d. 29.09.2008 11:53 af Bruger #13985
Ronnie, vi har diskuteret MSSQL igennem hele den her tråd, så det giver vel ikke meget mening at teste med MySQL??

Mvh.

Kasper (TSW)







Indlæg senest redigeret d. 29.09.2008 11:53 af Bruger #13985
Altså, trådstarteren snakkede om MSSQL, så det gjorde jeg også. Jeg skal ikke forsøge at forstå hvordan du har kunne udtale dig så skråsikkert om en database du åbenbart aldrig kunne finde på at benytte (hvilket i øvrigt ingen mening giver hvis du alligevel bruger ASP.NET, men pyt nu med det), men jeg kan da konkludere at der er blevet spildt en del tid her, når du alligevel bare bruger en database der kun har én provider :). At du så ovenikøbet tilbyder at gå i gang med testen, på trods af at du ikke vil benytte den database der tales om, for derefter at give mig ret i at det ikke giver mening for dig at udføre testen, synes jeg næsten er lidt imponerende :P

Mvh.

Kasper (TSW)







Indlæg senest redigeret d. 29.09.2008 11:53 af Bruger #13985
>Du misforstår.

Det tror jeg bestemt ikke :)

>ASP.net og MSSQL behøver ikke at gå hånd i hånd, selvom det er Microsoft's monopolistiske hensigt.

Ih ja, det er nok derfor at de leverer muligheder for at connecte til en masse andre databaser pr. default, og det er helt sikkert også derfor at de har gjort det let, via provider modellen, at skrive nye database providers og bruge dem i stedet.

>MySQL kører fint med ASP.net og den webhost jeg bruger til det nuværende project, tilbyder det.

Jeg har selv haft et website kørende via ASP.NET, der brugte MySQL som backend, og mine erfaringer er knap så gode som dine tilsyneladende er, men pyt nu med det :)

>At jeg blander mig, er at MSSQL lige så godt kan køres gennem ODBC, netop for ikke at lukke af fremover. Det er hvad det hele handlede om.

Og alligevel udtalte du dig konsekvent om hvordan performance var på MSSQL med ODBC vs. Sql* :)

>Ja, testen kunne da være interessant selvom jeg ikke bruger MSSQL, for det handler stadig om hvorvit man bør vænde sig til ODBC eller ej.

Hvordan det, hvis det er den eneste provider, hvilket du skrev for ca. et indlæg siden? Vores diskussion handlede om performance via ODBC vs. performance via Sql* klasserne - det har ikke rigtigt så meget med MySQL at gøre.

Nå, enough time wasted. Hvis der er nogen der kører testen op imod MSSQL, så lad os endelig høre resultatet, det kunne stadig være interessant at høre :)

Mvh.

Kasper (TSW)



Jeg er helt enig med Kasper. Er helt sat af i det her et eller andet sted... Det giver jo ikke nogen mening at lave testen med MySQL når der kun er en provider... :)

Men kunne stadig være fedt at se testen alligevel, hvis der er nogen andre der har mod på at bruge MSSQL mod de 2 forskellige providere ;)

Ronnie: Bruger du egentlig det indbyggede ODBC i .NET frameworket til MySQL eller bruger du MySQL's provider til .NET?

Nogen der ved om der overhovedet er forskel?







Indlæg senest redigeret d. 29.09.2008 11:53 af Bruger #13985
Hehe så er alle enige :D Nogen der har en server og har mod på testen?



Okay okay, så gør jeg det da :P

Info om testen: Den er foretaget op imod en lokal instans af MSSQL Server 2000 på en lokal Windows 2003 server. Jeg har to funktioner, der gør præcis det samme, men med hver deres provider: De truncater en tabel ved navn "test", så den er 100% clean. Derefter indsættes der X antal rækker via et for loop, hvor efter der køres en "SELECT *" på test tabellen, der returnerer en OdbcDataReader/SqlDataReader. Både SELECT og itereringen igennem readeren loopes X antal gange, men uden at gøre noget som helst ved de udtrukne data, for at forstyrre resultatet mindst muligt. Tabellen er i øvrigt meget simpel: En identity kolonne ved navn "id", og en varchar kolonne med navnet "name". En mere avanceret tabel, med nogle større felter, fx TEXT, kunne måske have givet større forskelle :).

Stopwatch klassen bruges til at måle, og det startes i toppen af funktionen, stoppes i bunden, hvorefter resultatet udskrives. De to funktioner hedder henholdsvis RunOdbcTest() og RunSqlTest() og de køres fra Page_Load metoden på en simpel ASPX side uden andet indhold. For at resultatet skal være så fair som mulig, så har jeg løbende byttet rundt på de to metodekald, så den ene ikke altid køres før den anden, hvilket også kan ses på rækkefølgen af output :). For at den ene metode ikke skal truncate en større tabel end den anden, er hver test kørt to gange, og kun resultatet af anden kørsel er med. Her er resultaterne så:

Kører 100 INSERT og SELECT iterationer:

SQL: 128ms elapsed
ODBC: 147ms elapsed

-------------------------------------------

Kører 500 INSERT og SELECT iterationer:

ODBC: 1232ms elapsed
SQL: 1105ms elapsed

-------------------------------------------

Kører 1000 INSERT og SELECT iterationer:

SQL: 3270ms elapsed
ODBC: 4295ms elapsed

-------------------------------------------

Kører 5000 INSERT og SELECT iterationer:

ODBC: 54136ms elapsed
SQL: 53488ms elapsed

-------------------------------------------

For the record så åbnes forbindelsen til databasen kun én gang pr. provider, dvs. to gange i alt. Det havde nok været mere website agtigt at åbne og lukke den en masse, for at simulere en masse pageviews, men det her var lige nemmere og hurtigere :)

Hvis andre har lyst til at køre en lignende test skal de være velkomne :)

Mvh.

Kasper (TSW)



Indlæg senest redigeret d. 22.09.2008 14:25 af Bruger #1
t