Avatar billede krestionsen Nybegynder
12. august 2004 - 09:47 Der er 6 kommentarer og
1 løsning

Update der ikke virker

Jeg har en update metode, som gerne skulle opdatere i databasen og når jeg tester sql'en i access, så virker den godt nok, men når jeg kører min metode, som vist nedenunder sker der ikke noget og den melder ikke om nogen fejl?

int opdater(int klientID, string dato)
    {
        string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=D:\\Fam\\db1.mdb";
        System.Data.IDbConnection dbConnection = new System.Data.OleDb.OleDbConnection(connectionString);

        string queryString = "UPDATE [Klient] SET [Henvisningsdato]=@dato WHERE ([Klient].[KlientID]" +
        " = @KlientID)";
        System.Data.IDbCommand dbCommand = new System.Data.OleDb.OleDbCommand();
        dbCommand.CommandText = queryString;
        dbCommand.Connection = dbConnection;

        System.Data.IDataParameter dbParam_klientID = new System.Data.OleDb.OleDbParameter();
        dbParam_klientID.ParameterName = "@KlientID";
        dbParam_klientID.Value = klientID;
        dbParam_klientID.DbType = System.Data.DbType.Int32;
        dbCommand.Parameters.Add(dbParam_klientID);
        System.Data.IDataParameter dbParam_henvisningsdato = new System.Data.OleDb.OleDbParameter();
        dbParam_henvisningsdato.ParameterName = "@Henvisningsdato";
        dbParam_henvisningsdato.Value = henvisningsdato;
        dbParam_henvisningsdato.DbType = System.Data.DbType.String;
        dbCommand.Parameters.Add(dbParam_henvisningsdato);

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

        return rowsAffected;
    }
Avatar billede krestionsen Nybegynder
12. august 2004 - 09:49 #1
Der hvor der står @dato, skulle der stå henvisningsdato, jeg ved ikke lige hvad der gik galt, da jeg pastede det herind.
Avatar billede arne_v Ekspert
12. august 2004 - 09:52 #2
Mit gæt ville være at du jo betragter @dato/dato er en string og at der er et format
problem !
Avatar billede krestionsen Nybegynder
12. august 2004 - 11:42 #3
nej, for dato'en i databasen er en string, kan man evt. lave metoden på en anden måde?
Avatar billede arne_v Ekspert
12. august 2004 - 11:46 #4
Du kan jo altid gøre det på den primitive måde med:

string queryString = "UPDATE [Klient] SET [Henvisningsdato]='" + dato + "' WHERE ([Klient].[KlientID] = " + klientID + ")";

men måden du gør det på er jo faktisk den "rigtige".
Avatar billede krestionsen Nybegynder
12. august 2004 - 13:10 #5
Ja, nu virker det, hvor jeg bruger den primitive metode, og det virker også fint med den anden metode jeg har, hvis jeg ikke har en where sætning med, mærkeligt. Læg et svar.
Avatar billede arne_v Ekspert
12. august 2004 - 13:28 #6
ok
Avatar billede jepsen999 Nybegynder
12. august 2004 - 18:36 #7
Jeg plejer ikke have @ med i parameternavnet:
dbParam_klientID.ParameterName = "@KlientID";
men det er muligt det kan gøres på begge måder...
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