Avatar billede superzapper Nybegynder
18. marts 2004 - 17:15 Der er 4 kommentarer og
1 løsning

Oprette post i DB med autonummerering

Hejsa.

Mit problem er egentlig meget lige til. Jeg skal have oprettet en post i en database hvor der er 3 feldter - 1 med autonummerering, 1 med et navn og 1 med et password.

Koden er som nedenstående, men jeg får en fejl der hedder:
Handlingen skal bruge en opdaterbar forespørgsel.


private void cmdOpret_Click(object sender, System.EventArgs e)
        {
           
            String strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;";
            strConnect += "Data Source=" + Server.MapPath("db/ps.mdb") + ";";
            strConnect += "Persist Security info=False";
           
            String strSQL = "SELECT a.brugernavn, a.pass FROM bruger AS a WHERE a.brugernavn = '" + txtBrugernavn.Text + "'";
             
            OleDbConnection    objConnection = new OleDbConnection(strConnect);
            OleDbCommand objCommand = new OleDbCommand(strSQL, objConnection);
            objConnection.Open();
            OleDbDataReader objDataReader = objCommand.ExecuteReader();
   
            if (objDataReader.Read())
            {
                lblMessage.Text = "Det indtastede brugernavn findes allerede";
            }
            else
            {
                OleDbCommand UpdateCommand = new OleDbCommand();
   
                UpdateCommand.Connection = objConnection;
   
                //UpdateCommand.CommandText = "INSERT INTO bruger values ('skod', 'ged')";
                //UpdateCommand.CommandText = "INSERT INTO bruger values ('" + txtBrugernavn.Text + "', '" + txtPassword.Text + "')";
               
                UpdateCommand.CommandText = "INSERT INTO bruger (brugernavn, pass, rolle) VALUES (@brugernavn, @pass, @rolle)";
                UpdateCommand.Parameters.Add("@brugernavn", OleDbType.VarChar).Value = "Skod";
                UpdateCommand.Parameters.Add("@pass", OleDbType.VarChar).Value = "ged";
                UpdateCommand.Parameters.Add("@rolle", OleDbType.VarChar).Value = "Bruger";


                UpdateCommand.ExecuteNonQuery();

              lblMessage.Text = "Din profil er nu oprettet - login for at komme igang";
   
            }
   
            objDataReader.Close();
            objConnection.Close();
        }
Avatar billede superzapper Nybegynder
18. marts 2004 - 17:16 #1
Ehh ja godmorgen til mig selv... Der er self. 4 poster... Glemte den med rolle...
Avatar billede arne_v Ekspert
18. marts 2004 - 21:33 #2
Hvis du vil indsætte 3 værdier i en tabel med 4 felter og den skal
skal autonummereres så bruger du:

INSERT INTO tabelnavn (felt2, felt3, felt4) VALUES (værdi2,værdi3,værdi4)

så vil felt1 få en auto værdi.

PS: Jeg tror at du skal have lukket din reader inden du laver INSERT.
Avatar billede dna Nybegynder
18. marts 2004 - 22:17 #3
1. Han skal have lukket readeren! Testede nemlig lige hans kode. :D
2. Det er vel et rettighedsproblem. Typisk fejlmeddelelse når der ikke er NTFS rettigheder til at ændre i database-filen.

dna
Avatar billede superzapper Nybegynder
18. marts 2004 - 22:52 #4
Det med readeren er rigtigt... Jeg havde også gjort det men fik åbenbart fat i en gammel udgave hvor det ikke var...

Anyway det har intet med problemet at gøre da det ikke er det der giver dne fejlmeddelelse jeg nævner... Og det er heller ikke rettigheder for alle mine netbruger profiler er sat til at have administratot rettigheder da jeg har testet for det!
Avatar billede superzapper Nybegynder
18. marts 2004 - 23:06 #5
Hmm jeg har fundet du af pisset nu...

DNA, det var åbenbart noget med rettigheder men det var ikke nok at gøre som vi snakkede om den anden dag - jeg skal dele mappen på normal vis. Jeg har prøvet bare at give fulde rettigheder til internet brugere og det hjalp ikke..
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
Kurser inden for grundlæggende programmering

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