23. marts 2004 - 10:06Der er
15 kommentarer og 1 løsning
Syntax error in INSERT INTO statement med Session i C#
Hej jeg får følgende fejl med insert sætning i kob tabellen.
System.Data.OleDb.OleDbException: Syntax error in INSERT INTO statement. i linje 48 Line 46: myConnection.Open(); Line 47: OleDbCommand myCommand = new OleDbCommand(strSQL, myConnection ); Line 48: myCommand.ExecuteNonQuery(); Line 49: myConnection.Close(); Line 50: }
Jeg forsøger at læggen en session med ind i tabellen, men jeg ved ikke hvad der er galt her, jeg tænker lidt på onm det kan være prisen som er sat til currency i rækken vPris
Her er hele min kode:
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="iso-8859-1" debug="true" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.OleDb" %> <% string title; title = "Varekøb i valgte kategori"; Session["session_id"] = Session.SessionID; %>
<script runat="server">
void Page_Load(object Sender, EventArgs E) {
string strConnection; string strSQL; OleDbConnection objConnection; OleDbCommand objCommand; strConnection =@"Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + Server.MapPath("/datab/abcd.mdb"); objConnection = new OleDbConnection(strConnection); objConnection.Open(); strSQL = "SELECT * FROM varelist WHERE vNummer = " + Request.QueryString["id"]; objCommand = new OleDbCommand(strSQL, objConnection); tojData.DataSource = objCommand.ExecuteReader(CommandBehavior.CloseConnection); tojData.DataBind();
Jeg er ret sikker paa at det er den samme fejl, som vi fandt en loesning paa den anden dag, dvs. med prisen, som indeholder komma i stedet for punktum, som decimal-separator. Har du proevet at lave en replace paa den?
Nej for jeg er ikke gelt sikker på hvordan jeg skal placere replacen når jeg har udskiftet den med strPris = Request.QueryString["tbvPris"]; i stedet for strvPris = Convert.ToSingle(tbvPris.Text); for jeg fik en fejl i strSQL += strvPris.ToString().Replace("," , ".") + ", "; når jeg brugte strPris = Request.QueryString["tbvPris"]; istedet
The type or namespace name 'tbvPris' could not be found (are you missing a using directive or an assembly reference?) - betyder at kompileren ikke kan finde forbindelsen mellem tbvPris-variablen og den kontrol du har paa siden. Enten har du ikke defineret den (rigtigt), eller ogsaa er skal du tilgaa den via dens "moder"-kontrol.
Object reference not set to an instance of an object.? - betyder at objektet (strPris?) ikke er blevet initialiseret.
Jeg kan ud fra dine eksempler ikke helt se, hvorfor det sker, men det undrer mig lidt at du skal have fat i variablerne via Request.QueryString? Du burde kunne finde dem via de parametre som sendes med klik-eventen.
Som du kan se her bruger jeg følgende for at den kan hente oplysningerne med over en textbox med visible set til false, så den ikke ses.
<td class="mainFont"> <%# DataBinder.Eval(Container.DataItem, "vNavn") %> <asp:textbox Visible="false" ID="tbvNavn" Text='<%# DataBinder.Eval(Container.DataItem, "vNavn") %>' /> </td> Så det må være her fejlen er, men hvordan kan jeg ellers lave den.
ja det har jeg også tænkt på men så får du jo nogle celler der kan rettes i og det er ikke meningen. Når jeg skriver følgende ud: <%# DataBinder.Eval(Container.DataItem, "vNavn") %> så håbede jeg på den kunne sende id videre herfra, og da den ikke gjorde dette prøvede jeg <asp:textbox men det virker heller ikke. Hvis jeg skal gøre det uden textbox / input er der nogle forslag til hvordan så?
Hvordan kan brugeren aendre i en inputbox der er hidden? Er det i forhold til hackere du mener? Saa er det jo noget med ikke at acceptere form-submits fra andre servere, saa vidt jeg ved. Jeg kan ikke lige se hvordan du kan overfoere en variabel, som brugeren ikke skal se, paa andre maader.
der er nu gået over en månede siden dgivoni skulle sende svar, men der er ikke kommet noget, hvis du ønsker pointen så send en kommentar, og jeg vil sende dig nogle point, men her bliver der lukket nu.
Synes godt om
Ny brugerNybegynder
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.