Avatar billede chakawoo.dk Nybegynder
07. juni 2004 - 10:52 Der er 4 kommentarer og
1 løsning

Update i access 2003

Nu har jeg kæmpet med det her problem i laaang tid....

Jeg skal opdatere en et felt i en Access 2003 db.

Tabellen der skal opdateres består af felterne (ID)Autonummer og (EXP) Bool.
EXP skal sættes til true WHERE ID = @ID.....

Problemet er at EXP ikke bliver opdateret.. og der kommer ingen fejlmeddelser.  HVAD ER DER GALT ??????

int MyUpdateMethod(int iD, bool eXP) {
        string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=C:\\Documents an" +
"d Settings\\mim\\Dokumenter\\db1.mdb";
        System.Data.IDbConnection dbConnection = new System.Data.OleDb.OleDbConnection(connectionString);

        string queryString = "UPDATE [tester] SET [EXP]=@EXP WHERE ([tester].[ID] = @ID)";
        System.Data.IDbCommand dbCommand = new System.Data.OleDb.OleDbCommand();
        dbCommand.CommandText = queryString;
        dbCommand.Connection = dbConnection;

        System.Data.IDataParameter dbParam_iD = new System.Data.OleDb.OleDbParameter();
        dbParam_iD.ParameterName = "@ID";
        dbParam_iD.Value = iD;
        dbParam_iD.DbType = System.Data.DbType.Int32;
        dbCommand.Parameters.Add(dbParam_iD);
        System.Data.IDataParameter dbParam_eXP = new System.Data.OleDb.OleDbParameter();
        dbParam_eXP.ParameterName = "@EXP";
        dbParam_eXP.Value = eXP;
        dbParam_eXP.DbType = System.Data.DbType.Boolean;
        dbCommand.Parameters.Add(dbParam_eXP);

        int rowsAffected = 0;
        dbConnection.Open();
        try {
            rowsAffected = dbCommand.ExecuteNonQuery();
        }
        finally {
            dbConnection.Close();
        }

        return rowsAffected;
    }
Avatar billede jakobg Nybegynder
07. juni 2004 - 13:41 #1
Har du givet ASPNET modify-rettigheder på mdb-filen?
Avatar billede jakobg Nybegynder
07. juni 2004 - 13:43 #2
Prøv evt. at fjerne din "try ... finally" omkring din ExecuteNonQuery, så kan du se fejlen, hvis det er opstår en.
Avatar billede chakawoo.dk Nybegynder
07. juni 2004 - 13:46 #3
Nå.... ingen  hjælp her....
Jeg har selv fundet ud af det.
Det er en fejl i Webmatrix Query builder.
Man skal sørge for at parametrene står i samme rækkefølge som i querystringen.
Altså
string queryString = "UPDATE [tester] SET [EXP]=@EXP WHERE ([tester].[ID] = @ID)";
først
System.Data.IDataParameter dbParam_eXP = new System.Data.OleDb.OleDbParameter();
        dbParam_eXP.ParameterName = "@EXP";
        dbParam_eXP.Value = eXP;
        dbParam_eXP.DbType = System.Data.DbType.Boolean;
        dbCommand.Parameters.Add(dbParam_eXP);
og herefter

System.Data.IDataParameter dbParam_iD = new System.Data.OleDb.OleDbParameter();
        dbParam_iD.ParameterName = "@ID";
        dbParam_iD.Value = iD;
        dbParam_iD.DbType = System.Data.DbType.Int32;
        dbCommand.Parameters.Add(dbParam_iD);

Jeg snupper de 30 point selv....
tak tak
Avatar billede chakawoo.dk Nybegynder
07. juni 2004 - 13:47 #4
Undskyld jakob ... jeg havde ikke set dit indlæg da jeg svarede... tak for hjælpen
Avatar billede jakobg Nybegynder
07. juni 2004 - 14:09 #5
Np, desuden var mine forslag jo heller ikke løsningen... :)
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