Avatar billede 4u2x Nybegynder
23. juli 2002 - 19:13 Der er 28 kommentarer og
2 løsninger

Error Message: CS1010: Newline in constant

Hvad mener den med:
Error Message: CS1010: Newline in constant

Her er linjen hvor fejlen ligger i:

OleDbCommand objCmd1 = new OleDbCommand( "INSERT INTO SchoolTable VALUES ('','" + SchoolName.Text + "','" + SchoolAdress.Text + "','" + SchoolPostcode.Text + "','" + SchoolWebsite.Text + "');

objConn.Open();
objCmd1.ExecuteNonQuery();
objConn.Close();
Avatar billede dgivoni Nybegynder
23. juli 2002 - 20:03 #1
så vidt jeg kan se mangler du et semikolon til sidst i linjen lige inden parentesen.
dvs. det skal være:
SchoolWebsite.Text + "'");
Avatar billede odegaard Nybegynder
23. juli 2002 - 20:16 #2
Du mener vel gåseøjne :-)
Avatar billede dgivoni Nybegynder
23. juli 2002 - 20:32 #3
hehe, yep
Avatar billede 4u2x Nybegynder
23. juli 2002 - 21:24 #4
hvad skal jeg ændre " objCmd1.ExecuteNonQuery(); " til? den skal jo oprette noget ikke ændre...
Avatar billede odegaard Nybegynder
23. juli 2002 - 21:31 #5
Det er den samme kommando. NonQuery, betyder at du ikke forventer at få noget tilbage, modsat hvis det var en SELECT
Avatar billede 4u2x Nybegynder
23. juli 2002 - 21:43 #6
objConn.Open();
objCmd1.ExecuteNonQuery();
objConn.Close();

FEJL:
ExecuteNonQuery: Connection property has not been initialized.
Avatar billede odegaard Nybegynder
23. juli 2002 - 21:47 #7
Har du "forbundet" objConn og objCmd med hinanden?
objCmd har en connection-parameter der skal være lidt med objConn.
Avatar billede odegaard Nybegynder
23. juli 2002 - 21:47 #8
øh lig med objConn (ikke lidt med)
Avatar billede 4u2x Nybegynder
23. juli 2002 - 21:52 #9
ups :-) fandt fejlen, men nu siger den, at der er en syntax-fejl i INSERT INTO-sætningen
Avatar billede 4u2x Nybegynder
23. juli 2002 - 21:53 #10
OleDbCommand objCmd1 = new OleDbCommand( "INSERT into SchoolTable VALUES ('','" + SchoolName.Text + "','" + SchoolAdress.Text + "','" + SchoolPostcode.Text + "','" + SchoolWebsite.Text + "'", objConn);
Avatar billede odegaard Nybegynder
23. juli 2002 - 21:55 #11
ja du mangler at angive hvilke kolonner du vil opdatere. Dvs. INSERT INTO SchoolTable Name,Adress,Postcode VALUES (.... osv.

jeg ved ikke lige hvad kolonnerne hedder i din DB, men jeg gættede på Name, Adress og Postcode.
Avatar billede 4u2x Nybegynder
23. juli 2002 - 21:58 #12
hmm troede håbede ellers at man ikke skulle gøre det i C-Sharp, det havde været meget nemmere
Avatar billede 4u2x Nybegynder
23. juli 2002 - 22:00 #13
odegaard det hjalp ikke, den kommer med samme fejl
Avatar billede odegaard Nybegynder
23. juli 2002 - 22:21 #14
SQL har jo intet med C-Sharp at gøre !
Avatar billede odegaard Nybegynder
23. juli 2002 - 22:24 #15
Kan du ikke prøve at udskrive din SQL-kommando som bliver genereret? F.eks. med response.write, og så ud-kommatere de linjer som ikke virker?
Fejlen er ofte at man får genereret en forkert SQL.
F.eks. Response.Write("SQL=" + objCmd.CommandText);
Smid resultatet her, så kigger jeg på det.
Avatar billede 4u2x Nybegynder
24. juli 2002 - 13:19 #16
Her er alt fra queryen som udfører handlingen, hvad det dét du mente?:

( "INSERT INTO SchoolTable SchoolName,SchoolAdress,SchoolPostcode,SchoolWebsite VALUES ('','" + SchoolName.Text + "','" + SchoolAdress.Text + "','" + SchoolPostcode.Text + "','" + SchoolWebsite.Text + "'", objConn);
Avatar billede dgivoni Nybegynder
24. juli 2002 - 13:30 #17
så vidt jeg kan se har du fire tabeller, men indsætter fem værdier.
Måske er det den tomme ''-streng i starten, som du ikke behøver?
Så plejer jeg nu i øvrigt også at sætte parentes om alle tabelnavnene, så det kommer til at se sådan her ud:
( "INSERT INTO SchoolTable (SchoolName, SchoolAdress, SchoolPostcode, SchoolWebsite) VALUES ('" + SchoolName.Text + "','" + SchoolAdress.Text + "','" + SchoolPostcode.Text + "','" + SchoolWebsite.Text + "'", objConn);
Avatar billede odegaard Nybegynder
24. juli 2002 - 13:35 #18
Nej, det jeg mente var: Hvad bliver SQL-strengen til, efter at SchoolName.Text osv. er blevet sat sammen med resten af teksten. Dette skal ikke ske ved at du selv regner ud hvad den bliver, men får siden til at udskrive teksten (også kaldet debugging!). Det er tit sådan at man kan finde en lang række syntax-fejl i SQL.

Men dgivoni har helt ret. Du har forsøger at indsætte 5 værdier, men angiver kun at du vil indsætte 4 felter. Det var en fejl som helt sikkert ville have været nemmere at opdage, hvis man lige have lavet en udskrivning af den genererede SQL-streng.
Avatar billede 4u2x Nybegynder
24. juli 2002 - 13:36 #19
så er det rettet, men jeg får fejlen:

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.Data.OleDb.OleDbException: Der er en syntaksfejl i INSERT INTO-sætningen.

Source Error:


Line 12:        OleDbCommand objCmd1 = new OleDbCommand( "INSERT INTO SchoolTable (SchoolName, SchoolAdress, SchoolPostcode, SchoolWebsite) VALUES ('" + SchoolName.Text + "','" + SchoolAdress.Text + "','" + SchoolPostcode.Text + "','" + SchoolWebsite.Text + "'", objConn);
Line 13:        objConn.Open();
Line 14:        objCmd1.ExecuteNonQuery();
Line 15:        objConn.Close();
Line 16:       


Source File: C:\Dokumenter\betachat\opret_skole.aspx    Line: 14
Avatar billede dgivoni Nybegynder
24. juli 2002 - 13:37 #20
helt enig odegaard, den måde plejer jeg også selv at debugge på.
Avatar billede dgivoni Nybegynder
24. juli 2002 - 13:41 #21
det er så her en Response.Write af sql-strengen kan være en hjælp...
Avatar billede 4u2x Nybegynder
24. juli 2002 - 13:45 #22
oki, når jeg tilføjer kommer der teksten:

SQL=INSERT INTO SchoolTable (id, SchoolName, SchoolAdress, SchoolPostcode, SchoolWebsite) VALUES ('','kbh int','helleruyp','2900','www.int.dk'SQL=INSERT INTO SchoolTable (id, SchoolName, SchoolAdress, SchoolPostcode, SchoolWebsite) VALUES ('','kbh int','helleruyp','2900','www.int.dk'Skolen er tilføjet og alle dens informationer er blevet gemt!
Avatar billede 4u2x Nybegynder
24. juli 2002 - 13:49 #23
det skal så siges, at jeg har sat // foran " objCmd1.ExecuteNonQuery(); "

for ellers kommer der samme fejl
Avatar billede dgivoni Nybegynder
24. juli 2002 - 13:55 #24
er dit id-felt et autonummereret felt? for så må du ikke tildele det nogen værdi. Hvis dit id-felt er defineret som sådan i databasen også, kan du heller ikke bare give det en tom streng, da værdien i feltet skal være unik.
Avatar billede odegaard Nybegynder
24. juli 2002 - 13:56 #25
Du mangler en parantes til sidst i din SQL. Det er ikke fordi jeg ikke vil hjælper, men bruger du i det hele taget mere en 3 sekunder på selv at lede efter dine fejl ?
Avatar billede odegaard Nybegynder
24. juli 2002 - 13:57 #26
Hvis dit ID iøvrigt kører med autonummerering, så skal du ikke angive ID nummer. Og du skal vel næppe angive ID som en tom streng. Det er vel et tal?
Avatar billede odegaard Nybegynder
24. juli 2002 - 13:59 #27
Dvs:
OleDbCommand objCmd1 = new OleDbCommand( "INSERT INTO SchoolTable (SchoolName, SchoolAdress, SchoolPostcode, SchoolWebsite) VALUES ('" + SchoolName.Text + "','" + SchoolAdress.Text + "','" + SchoolPostcode.Text + "','" + SchoolWebsite.Text + "')", objConn);
Avatar billede odegaard Nybegynder
24. juli 2002 - 14:00 #28
Hvis SchoolPostcode er et tal, skal du iøvrigt fjerne apostrofferne omkring værdien.
Avatar billede 4u2x Nybegynder
24. juli 2002 - 14:03 #29
odegaard >> sorry ved godt jeg er pænt doven, men jeg har også selv prøvet at indsætte ) men glemte så også at flytte " med :-/

men nu virker det efter at " også blev flyttet
Avatar billede 4u2x Nybegynder
24. juli 2002 - 14:04 #30
så er jeg point afsendt, og så har jeg vedlagt lidt ekstra pga al den tid i har brugt på mig :-)
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