Avatar billede xitmorph Nybegynder
20. maj 2005 - 08:14 Der er 28 kommentarer og
1 løsning

ConvertTo string metode. Jeg vil insætte en pris streng i min db.

Jeg skal ha lavet en convert command så kan kan insætte min "pris" i dben med en (string ProdPris,). Jeg får fejlen Disallowed implicit conversion from data type varchar to data type smallmoney. her er mit kode:

private int InsertRecord(string ProdNavn, string ProdBesk,  string ProdPris, string ProdImg, string VareNummer, string LangText)
        {
            SqlConnection cnn;
            SqlCommand cmd;
            cnn = new SqlConnection("server=85.81.51.106;uid=ebytesolution;pwd=Compaq2100;database=ebytesolution");
            cmd = new SqlCommand("insert into Produkter(ProdNavn,ProdBesk,ProdPris,ProdImg,VareNummer,LangText) values ('"+ProdNavn+"','"+ProdBesk+"','"+ProdPris+"','"+ProdImg+"','"+VareNummer+"','"+LangText+"')",cnn);
            int rowsAffected = 0;
            cnn.Open();
            try
            {
                rowsAffected = cmd.ExecuteNonQuery();
            }
            finally
            {
                cnn.Close();
            }
       
            return rowsAffected;

        }
Avatar billede -mundi- Nybegynder
20. maj 2005 - 08:19 #1
Det første du gør er at logge på din server og ændre dit password
Avatar billede xitmorph Nybegynder
20. maj 2005 - 08:20 #2
h eh e... jeg har lige gjort det... h eh eh e  fejl 40.....
Avatar billede Syska Mester
20. maj 2005 - 08:21 #3
der skal ikke være '' omkring ProdPris, og så skal du have conveteret din ProdPris til noget tilsvarede i SmallMoney, måske double/float

ProdPris skal så være en string, men det tror jeg også den er i din kode

ProdBesk+"',Convert.ToDouble(ProdPris),'"+ProdImg

skal lige siges jeg ikke aner hvad SmallMoney svarer til i C#, men måske overstående
Avatar billede -mundi- Nybegynder
20. maj 2005 - 08:25 #4
cmd = new SqlCommand("insert into Produkter(ProdNavn,ProdBesk,ProdPris,ProdImg,VareNummer,LangText) values ('"+ProdNavn+"','"+ProdBesk+"',CAST('"+ProdPris+"' as smallmoney),'"+ProdImg+"','"+VareNummer+"','"+LangText+"')",cnn);

burde virke
Avatar billede arne_v Ekspert
20. maj 2005 - 08:25 #5
prøv bare at fjern '' omkring prodpris og se hvad der sker

smallmoney "er" decimal

men den her sammenhæng må string være OK
Avatar billede arne_v Ekspert
20. maj 2005 - 08:26 #6
bare huske at bruge . ikke , foran ører
Avatar billede xitmorph Nybegynder
20. maj 2005 - 08:26 #7
hmm. .det virker ikke helt.. den aner ikke hvordan den skal afkode den..
Avatar billede xitmorph Nybegynder
20. maj 2005 - 08:30 #8
fedest.... det virker sq... tak for det... #-mundi-# smid li et svar
Avatar billede -mundi- Nybegynder
20. maj 2005 - 08:38 #9
Svar :-)
Avatar billede xitmorph Nybegynder
20. maj 2005 - 08:52 #10
øø.. jeg sagde nok at det virkede... men det gør det sq ik.. den smider godt nok noget i dben.. men det er kun 2.0000 og jeg kan ikke ændre det..
Avatar billede xitmorph Nybegynder
20. maj 2005 - 08:54 #11
det her skriver den: Cannot convert a char value to money. The char value has incorrect syntax
Avatar billede -mundi- Nybegynder
20. maj 2005 - 08:55 #12
prøv at udskrive/debugge SQL strengen og post den her
Avatar billede xitmorph Nybegynder
20. maj 2005 - 08:57 #13
[SqlException: Cannot convert a char value to money. The char value has incorrect syntax.]
  System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +180
  EbyteSolutions.NyVare.InsertRecord(String ProdNavn, String ProdBesk, String ProdPris, String ProdImg, String VareNummer, String LangText) in c:\inetpub\wwwroot\ebytesolutions\nyvare.aspx.cs:93
  EbyteSolutions.NyVare.OpretBtn_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\ebytesolutions\nyvare.aspx.cs:116
  System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
  System.Web.UI.Page.ProcessRequestMain() +1292
Avatar billede -mundi- Nybegynder
20. maj 2005 - 08:57 #14
Så er det fordi der er et eller andet ugyldigt tegn med.
Avatar billede -mundi- Nybegynder
20. maj 2005 - 08:58 #15
hvilken værdi indsætter du ?
Avatar billede xitmorph Nybegynder
20. maj 2005 - 09:00 #16
cmd = new SqlCommand("insert into Produkter(ProdNavn,ProdBesk,ProdPris,ProdImg,VareNummer,LangText) values ('"+ProdNavn+"','"+ProdBesk+"', CAST('"+ProdPris+"' as money) , '"+ProdImg+"','"+VareNummer+"','"+LangText+"')",cnn);

det skulle der ikke være... og jeg har en validator på boxen.. så det kan kun være en pris der kommer i boxen.. flår sq snart håret af mig selv....
Avatar billede -mundi- Nybegynder
20. maj 2005 - 09:09 #17
prøv at udskrive ProdPris
Avatar billede xitmorph Nybegynder
20. maj 2005 - 09:13 #18
jeg har slettet det hele og skrev det hele igen og nu skriver den en ny fejl..:
-------------------------------------------------------------------------------
Type monety is not a defined system type.
Beskrivelse: Der opstod en ikke-afviklet undtagelse under udførelse af den aktuelle webanmodning. Se staksporingen for at få yderligere oplysninger om fejlen, og hvor den kom fra i koden.

Detaljer om undtagelse: System.Data.SqlClient.SqlException: Type monety is not a defined system type.
---------------------------------------
Når jeg ikke skriver noget i feltet så smider den 2.00000 i tabellen ProdPris. De andre tabeller virker ok.. men hvis jeg skriver 200 så får jeg fejlen..
Avatar billede arne_v Ekspert
20. maj 2005 - 09:16 #19
monety ????
Avatar billede xitmorph Nybegynder
20. maj 2005 - 09:21 #20
ja ok.. skrivefejl..  jeg tror sq jeg er ved at være lidt træt.. lool.. nu er vores "lille" fejl der igen: Cannot convert a char value to money. The char value has incorrect syntax.
Beskrivelse: Der opstod en ikke-afviklet undtagelse under udførelse af den aktuelle webanmodning. Se staksporingen for at få yderligere oplysninger om fejlen, og hvor den kom fra i koden.

Detaljer om undtagelse: System.Data.SqlClient.SqlException: Cannot convert a char value to money. The char value has incorrect syntax.

try
Linje 93:             {
Linje 94:                 rowsAffected = cmd.ExecuteNonQuery();
Linje 95:             }
Linje 96:             finally
Avatar billede xitmorph Nybegynder
20. maj 2005 - 09:23 #21
jeg skal nok give point igen.. bare det kommer til at virke... :-)
Avatar billede arne_v Ekspert
20. maj 2005 - 09:33 #22
Check at værdien er med punktum og ikke med komma.
Avatar billede arne_v Ekspert
20. maj 2005 - 09:33 #23
og prøv uden cast:

+ "',"+ProdPris+",'"+
Avatar billede xitmorph Nybegynder
20. maj 2005 - 09:50 #24
hmm.. det virker ikke.. den smider kun 1,0000 i dben.. det er sq underligt.. er det dumt at lave ProdPris om til varchar?
Avatar billede -mundi- Nybegynder
20. maj 2005 - 09:58 #25
Inden din "cmd.ExecuteNonQuery();" så skriv :
Response.Write(ProdPris);
Response.End

For at se hva den prodPris egentligt er inden den ryger i db'en
Avatar billede xitmorph Nybegynder
20. maj 2005 - 10:02 #26
hmm... den er sq fucked fuldstendigt op... den smider beskrivelsen i databasen.. værdien i ProdBesk..... hvad fanden sker der.. :-)  jeg har gloet hele koden igennem.. og frontenden er ok.. det er jeg sikker på..
Avatar billede xitmorph Nybegynder
20. maj 2005 - 10:04 #27
lige en ting i min insert record ser sårn ud:InsertRecord(txtVareNummer.Value,txtProdNavn.Value,txtProdBesk.Value,txtProdPris.Value,txtLangText.Value,txtProdImg.Value);

det er vel ok ik ?
Avatar billede xitmorph Nybegynder
20. maj 2005 - 10:11 #28
jeg har fundet fejlen.. jeg kom til at bytte om på nogle værdier i min insert record.. smid lige et svar arne..
Avatar billede arne_v Ekspert
20. maj 2005 - 10:32 #29
ikke muligt - spørgsmålet er lukket
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