Avatar billede youcancallmeal Nybegynder
17. juli 2003 - 22:27 Der er 15 kommentarer og
1 løsning

Opdatering af Access database

Hvorfor virker nedenstående kode ikke? 100 points til den der har svaret.

OleDbConnection conn = null;
conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " + "Data Source=" + Server.MapPath("brugerprofil.mdb"));
            conn.Open();
string sql = "UPDATE brugertabel Set fornavn='" + txtfornavn.Text + "' WHERE email=" + "'" + email + "'";
OleDbCommand cmd = new OleDbCommand(sql, conn);
cmd.ExecuteNonQuery();
conn.Close();
Avatar billede nielslbeck Nybegynder
17. juli 2003 - 22:31 #1
Hvad får du af fejl?
Avatar billede nielslbeck Nybegynder
17. juli 2003 - 22:37 #2
Hvis jeg skal gætte på en fejl:

System.Data.OleDb.OleDbException: Operation must use an updateable query.

Korrekt?
Avatar billede youcancallmeal Nybegynder
17. juli 2003 - 22:38 #3
jeg får ingen fejl...det er det mest irriterende...
Avatar billede nielslbeck Nybegynder
17. juli 2003 - 22:40 #4
Ingen fejl? Mystisk!

Nå, men det kan måske være ovenstående alligevel... så tjek lige, at ASP.NET accounten har skriveadgang til databasen på disken...
Avatar billede youcancallmeal Nybegynder
17. juli 2003 - 22:40 #5
det har den :).
Avatar billede nielslbeck Nybegynder
17. juli 2003 - 22:41 #6
Igen fejl siger du... hvad sker der da? Bliver siden vist som den skal? Er det bare i databasen der ikke bliver opdateret?
Avatar billede youcancallmeal Nybegynder
17. juli 2003 - 22:45 #7
ja jeg har tilføjet linien:
Response.Write("Brugerprofilen er hermed opdateret");Response.End();

og den hopper fint dertil
Avatar billede nielslbeck Nybegynder
17. juli 2003 - 22:46 #8
Okay, så må det jo næsten være fordi, der ikke findes nogen record i "brugertabel" hvor værdien af "email" feltet er lidt det du har stående i "email".

Hvad bliver der udskrevet, hvis du udfører:

Response.Write(sql);
Avatar billede nielslbeck Nybegynder
17. juli 2003 - 22:48 #9
Nu er email vel ikke en tekstboks ligesom txtfornavn, vel? For så skal der jo stå email.Text :-)
Avatar billede youcancallmeal Nybegynder
17. juli 2003 - 22:52 #10
mystisk jeg har debugget og det ser ud som om at når jeg trykker på opdater knappen så tages det der på forhånd er initialiseret i tekstboksen txtfornavn.text og ikke det jeg har ændret i...meget mystisk...
Avatar billede nielslbeck Nybegynder
17. juli 2003 - 22:56 #11
Jeg er vist ikke helt med... har du noget mere kode vi kan se?
Avatar billede youcancallmeal Nybegynder
17. juli 2003 - 23:08 #12
ok her hentes ind i boksen:

private void Page_Load(object sender, System.EventArgs e)
        {
OleDbConnection Myconnection = null;
OleDbDataReader dbReader = null;
Myconnection = new OleDbConnection (@"Provider=Microsoft.Jet.OLEDB.4.0; User Id=; Password=; Data Source=" + Server.MapPath("brugerprofil.mdb"));
Myconnection.Open();
OleDbCommand cmd = Myconnection.CreateCommand();
cmd.CommandText = "SELECT * FROM brugertabel WHERE email='"+ email +"'";
dbReader = cmd.ExecuteReader();
dbReader.Read();
txtfornavn.Text = (string)dbReader.GetValue(2);
}

Koden herover henter fint fra databasen og når jeg så ændrer i txtfornavn og trykker opdater så bruges den gamle tekst som er hentet ind herover
Avatar billede youcancallmeal Nybegynder
17. juli 2003 - 23:14 #13
glemte lige at tilføje:

dbReader.Close();
Myconnection.Close();
Avatar billede youcancallmeal Nybegynder
17. juli 2003 - 23:48 #14
det har tilsyneladende noget med Page_Load koden. Eksisterer der en anden måde hvorpå jeg kan hente data ind ?
Avatar billede youcancallmeal Nybegynder
18. juli 2003 - 00:18 #15
Jeg har fundet ud af nu, at når jeg trykker på knappen bliver Page_Load eventen kørt igen og derfor sættes txtfornavn til det samme igen og igen. Hvorfor sker det?
På forhånad tak
Avatar billede youcancallmeal Nybegynder
18. juli 2003 - 00:44 #16
OK jeg har fundet løsningen.

Til Page_Load skal tilføjes: if(!IsPostback){....} og vupti så kører det.

tak for hjælpen alligevel niels.
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