18. marts 2004 - 12:36
Der er
9 kommentarer og 1 løsning
Forespørgselsværdier og destinationsfelter er ikke det samme C#
Jeg får følgende fejl: Antallet af forespørgselsværdier og destinationsfelter er ikke det samme. i denne kodestring strvNummer, strvNavn, strvBeskriv, strvBilled, strvKategori; float strvPris; string strSQL; DropDownList myDrpBox; myDrpBox = (DropDownList) tbvKategori.FindControl("drpData"); strvNummer = tbvNummer.Text; strvNavn = tbvNavn.Text; strvBeskriv = tbvBeskriv.Text; strvBilled = fullpath.ToString(); strvPris = Convert.ToSingle(tbvPris.Text); strvKategori = myDrpBox.SelectedItem.Value.ToString(); strSQL = "INSERT INTO varelist (vNummer, vNavn, vBeskriv, vBilled, vPris, vKategori) Values ("; strSQL += strvNummer + ", '"; strSQL += strvNavn + "', '"; strSQL += strvBeskriv + "', '"; strSQL += strvBilled + "', "; strSQL += strvPris + ", "; strSQL += strvKategori + ")"; //Response.Write(strSQL); OleDbConnection myConnection = new OleDbConnection(@"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Inetpub\wwwroot\eHandel\abcd.mdb" ); myConnection.Open(); OleDbCommand myCommand = new OleDbCommand(strSQL, myConnection ); myCommand.ExecuteNonQuery(); myConnection.Close(); lblBesked.Text ="Du har oprettet en Varer som er " + tbvNavn.Text; btInsert.Enabled=false; hvis jeg indtaser et beløb som 99,95 så laver den denne fejl, men hvis jeg indtaster beløbet som 99.95 så går den igennem, men laver beløbet om til 9.995,00 hvad kan fejlen være her?
Annonceindlæg fra Deloitte
18. marts 2004 - 12:37
#1
ups der skulle have stået i denne kode "linjeskift" string strvNumer,..................
18. marts 2004 - 12:45
#2
hvis du har et komma (,) tror den at det drejer sig om to forskellige vaerdier, dvs. at du baade vil indsaette 99 og 95 i to forskelle kolonner i databasen. Eftersom du kun definerer 5 kolonner, men den "opdager" at der er 6 vaerdier, brokker den sig med den fejlmeddelelse du har faaet.
18. marts 2004 - 12:47
#3
saa du er noedt til at indsaette med punktum, som decimalseparator (.) i stedet for komma (,) Evt. kan du lave en replace paa strvPris hvor du erstatter , med . f.eks: strSQL += strvKategori.Replace("," , ".");
18. marts 2004 - 12:56
#4
Skal den så sættes ind i sådan her: strSQL = "INSERT INTO varelist (vNummer, vNavn, vBeskriv, vBilled, vPris, vKategori) Values ("; strSQL += strvNummer + ", '"; strSQL += strvNavn + "', '"; strSQL += strvBeskriv + "', '"; strSQL += strvBilled + "', "; strSQL += strvPris + ", "; strSQL += strvKategori.Replace("," , ".") + ")"; //Response.Write(strSQL); så siger den nemlig det samme
18. marts 2004 - 13:34
#5
hehe, det er fordi jeg skrev strvKategori i stedet for strvPris, sorry
18. marts 2004 - 13:51
#6
Jeg få nu følgende fejl 'float' does not contain a definition for 'Replace' Jeg har et update script hvor jeg bruger: void UpDateCommand(object sender, System.Web.UI.WebControls.CommandEventArgs e) { OleDbConnection OurConnection; OleDbCommand OurCommand; string nyhedId = e.CommandArgument.ToString(); OurConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Inetpub\wwwroot\eHandel\abcd.mdb"); OurCommand = new OleDbCommand ("UPDATE varelist SET vNummer = @vNummer, vNavn = @vNavn, vBeskriv = @vBeskriv, vPris = @vPris WHERE vId = " + nyhedId, OurConnection); OurCommand.Parameters.Add("@vNummer", OleDbType.VarChar).Value = UpdatevNummer.Text; OurCommand.Parameters.Add("@vNavn", OleDbType.VarChar).Value = UpdatevNavn.Text; OurCommand.Parameters.Add("@vBeskriv", OleDbType.LongVarChar).Value = UpdatevBeskriv.Text; OurCommand.Parameters.Add("@Pris", OleDbType.Currency).Value = UpdatevPris.Text; OurConnection.Open(); OurCommand.ExecuteNonQuery(); OurConnection.Close(); LoadData(); Og her skriver den det godt ind med OurCommand.Parameters.Add("@Pris", OleDbType.Currency).Value = UpdatevPris.Text; Nogle forslag
18. marts 2004 - 13:59
#7
nej, ok, du konverterer det fra en string i tekstboks til float og derefter tilbage til en streng. Enten kan du lade vaere med det, dvs. direkte indsaette strSQL += tbvPris.Text.Replace(",", ".") + ", "; eller ogsaa skal du kontrollere hvordan din pris (float-variabel) bliver konverteret til en streng. Det kan jeg ikke lige huske hvordan man goer, men jeg undersoeger det lige...
18. marts 2004 - 14:10
#8
jeg har fundet en nemmere maade: strSQL += strvPris.ToString().Replace(",", ".") + ", "; Det burde virke...
18. marts 2004 - 14:15
#9
send et svar og pointens er dine
18. marts 2004 - 14:21
#10
okidoki :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.