23. juli 2002 - 15:26
Der er
10 kommentarer og 2 løsninger
Opdatere med forkert data
jeg skal opdatere 2 felter som hedder: PastName, Postcode. Problemet er at den ik henter dem. Koden er skrevet i C-Sharp. her er koden: OleDbCommand objCmd1 = new OleDbCommand( "UPDATE Table SET PastName = 'PastName.Text' WHERE id = 4", objConn); OleDbCommand objCmd2 = new OleDbCommand( "UPDATE Table SET Postcode = 'Postcode.Text' WHERE id = 4", objConn);
Annonceindlæg fra Deloitte
Har du husket objCmd1.ExecuteNonQuery() ? Iøvrigt, hvorfor benytter du ikke bare én SQL, istedet for to: "UPDATE Table SET PastName = 'PastName.Text', Postcode = 'Postcode.Text' WHERE id = 4"
ja, men den indsætter ik data'en som er indtastet i <asp:TextBox id="PastName"> det er det som er problemet
du skal skrive det sådan her: "UPDATE Table SET PastName = '" + PastName.Text + "', Postcode = '" + Postcode.Text + "' WHERE id = 4" så burde det virke
du skal så at sige hoppe ud af din sql-streng for at få adgang til textfeltet
jeg sad også og tænkte over at de var et underligt navn at indsætte :-)
du får lige hele min kode, for den henter bare det som der stod der fra starten af hvor den gamle data er indtastet... <%@ Page Language="C#" Debug="true" %> <%@ import Namespace="System.Data" %> <%@ import Namespace="System.Data.OleDb" %> <script runat="server"> void OpdaterBtn_Click(Object sender, EventArgs e) { //replace(input, vbCrLf, "<br>"); string strConnect = @"PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\dokumenter\betachat\data.mdb;"; OleDbConnection objConn = new OleDbConnection(strConnect); OleDbCommand objCmd1 = new OleDbCommand( "UPDATE SchoolTable SET SchoolPostcode = ' " + SchoolPostcode.Text + " ' WHERE id = 4", objConn); OleDbCommand objCmd2 = new OleDbCommand( "UPDATE SchoolTable SET SchoolName = ' " + SchoolName.Text + " ' WHERE id = 4", objConn); OleDbCommand objCmd3 = new OleDbCommand( "UPDATE SchoolTable SET SchoolAdress = ' " + SchoolAdress.Text + " ' WHERE id = 4", objConn); OleDbCommand objCmd4 = new OleDbCommand( "UPDATE SchoolTable SET SchoolWebsite = ' " + SchoolWebsite.Text + " ' WHERE id = 4", objConn); objConn.Open(); objCmd1.ExecuteNonQuery(); objCmd2.ExecuteNonQuery(); objCmd3.ExecuteNonQuery(); objCmd4.ExecuteNonQuery(); objConn.Close(); Response.Write("Skolens informationer er blevet gemt!"); } void Page_Load(){ string strConnect = @"PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\dokumenter\betachat\data.mdb;"; OleDbConnection objConn = new OleDbConnection(strConnect); OleDbCommand objCmd = new OleDbCommand( "SELECT SchoolPostcode, SchoolName, SchoolAdress, SchoolWebsite FROM SchoolTable WHERE id = 4", objConn); objConn.Open(); OleDbDataReader objReader = objCmd.ExecuteReader( CommandBehavior.CloseConnection ); while( objReader.Read() ){ SchoolPostcode.Text = objReader.GetString(0); SchoolName.Text = objReader.GetString(1); SchoolAdress.Text = objReader.GetString(2); SchoolWebsite.Text = objReader.GetString(3); } //Response.Write( "<br>Det virker, jubii" ); } </script> <html> <head></head> <body> <form runat='server'><table width='100%' border='0'><tr> <td width='30%'>Skolen: <asp:TextBox id='SchoolName' runat='server'></asp:TextBox></td> <td width='10%'>Postnr: <asp:TextBox id='SchoolPostcode' runat='server'></asp:TextBox></td> <td width='30%'>Sted: <asp:TextBox id='SchoolAdress' runat='server'></asp:TextBox></td> <td width='30%'>Web: <asp:TextBox id='SchoolWebsite' runat='server'></asp:TextBox></td> </tr></table> <asp:button id="OpdaterBtn" onclick="OpdaterBtn_Click" runat="server" text="Opdater"></asp:button></form> </body> </html>
Ah.. det er fordi page_load bliver kørt først. Dvs du overskriver felterne, inden du henter dem igen i OpdaterBtn_Click. Brug: if (!Page.IsPostBack) { hent data fra database }
så kommer der fejlen i den linje du gav mig: Compiler Error Message: CS1519: Invalid token 'if' in class, struct, or interface member declaration
har du sat den ind i Page_Load sådan her: void Page_Load(){ if (!Page.IsPostBack) { string strConnect = @"PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:\dokumenter\betachat\data.mdb;"; OleDbConnection objConn = new OleDbConnection(strConnect); OleDbCommand objCmd = new OleDbCommand( "SELECT SchoolPostcode, SchoolName, SchoolAdress, SchoolWebsite FROM SchoolTable WHERE id = 4", objConn); objConn.Open(); OleDbDataReader objReader = objCmd.ExecuteReader( CommandBehavior.CloseConnection ); while( objReader.Read() ){ SchoolPostcode.Text = objReader.GetString(0); SchoolName.Text = objReader.GetString(1); SchoolAdress.Text = objReader.GetString(2); SchoolWebsite.Text = objReader.GetString(3); } //Response.Write( "<br>Det virker, jubii" ); } }
23. juli 2002 - 17:22
#10
nååå :-)
23. juli 2002 - 17:24
#11
JAA DET VIRKER!!!!
23. juli 2002 - 17:39
#12
Jeg forstår dog slet ikke hvorfor du laver fire queries som kan udføres i én query. Det er langt fra særlig smart performance-mæssigt. Og hvad hvis f.eks. query nr. 3 fejler ?
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.