Avatar billede 4u2x Nybegynder
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);
Avatar billede odegaard Nybegynder
23. juli 2002 - 15:36 #1
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"
Avatar billede 4u2x Nybegynder
23. juli 2002 - 15:49 #2
ja, men den indsætter ik data'en som er indtastet i <asp:TextBox id="PastName">

det er det som er problemet
Avatar billede dgivoni Nybegynder
23. juli 2002 - 16:22 #3
du skal skrive det sådan her:

"UPDATE Table SET PastName = '" + PastName.Text + "', Postcode = '" + Postcode.Text + "' WHERE id = 4"
så burde det virke
Avatar billede dgivoni Nybegynder
23. juli 2002 - 16:23 #4
du skal så at sige hoppe ud af din sql-streng for at få adgang til textfeltet
Avatar billede odegaard Nybegynder
23. juli 2002 - 16:54 #5
jeg sad også og tænkte over at de var et underligt navn at indsætte :-)
Avatar billede 4u2x Nybegynder
23. juli 2002 - 17:01 #6
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>
Avatar billede odegaard Nybegynder
23. juli 2002 - 17:09 #7
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 }
Avatar billede 4u2x Nybegynder
23. juli 2002 - 17:14 #8
så kommer der fejlen i den linje du gav mig:

Compiler Error Message: CS1519: Invalid token 'if' in class, struct, or interface member declaration
Avatar billede dgivoni Nybegynder
23. juli 2002 - 17:17 #9
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" );
        }
}
Avatar billede 4u2x Nybegynder
23. juli 2002 - 17:22 #10
nååå :-)
Avatar billede 4u2x Nybegynder
23. juli 2002 - 17:24 #11
JAA DET VIRKER!!!!
Avatar billede odegaard Nybegynder
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 ?
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