Avatar billede brian-johansen Nybegynder
08. juni 2005 - 14:04 Der er 10 kommentarer og
1 løsning

Hente max værdi.

Hej,
Det er sådan at jeg skal hente en max værdi fra en tabel i min database, og returnere den til et label, men jeg kan ikke få det til at virke.

Koden
string strDSN1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\ordre.MDB"; 
            string strSQL1 = "SELECT MAX(ordrenr) FROM ordre";
            //string strSQL1 = "SELECT ordrenr From ordre Where ordrenr = MAX(ordrenr)";
            // create Objects of ADOConnection and ADOCommand
            OleDbConnection myConn1 = new OleDbConnection(strDSN1);
            OleDbDataAdapter myCmd1 = new OleDbDataAdapter( strSQL1, myConn1 );
            string[] max = new string[1];
            myConn1.Open();
            max.ToString();
            DataSet ds = new DataSet();
            myCmd1.Fill(ds, "ordrenr");
            ds.
            DataTable dt = new DataTable();
            dt = ds.Tables["ordre"];
            max[0] = dt.Rows[0]["ordrenr"].ToString();
            MessageBox.Show(max[0]);



Hvad er problemet, og er det overhovedet den bedste måde at gribbe det an på ?

mvh Brian
Avatar billede arne_v Ekspert
08. juni 2005 - 14:10 #1
Hvad fejl får du ?
Avatar billede arne_v Ekspert
08. juni 2005 - 14:12 #2
jeg ville bruge ExecuteScalar

string strDSN1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\ordre.MDB";
string strSQL1 = "SELECT MAX(ordrenr) FROM ordre";
OleDbConnection myConn1 = new OleDbConnection(strDSN1);
OleDbCommand myCmd1 = new OleDbCommand(strSQL1, myConn1);
decimal max = (decimal)myCmd1.ExecuteScalar();
myLabel1.Text = max.ToString();
Avatar billede arne_v Ekspert
08. juni 2005 - 14:12 #3
utestet !
Avatar billede brian-johansen Nybegynder
08. juni 2005 - 14:12 #4
Jeg får:
Object reference not set to an instance of an object
mvh
Avatar billede brian-johansen Nybegynder
08. juni 2005 - 14:15 #5
jeg tester lige så :D
Avatar billede brian-johansen Nybegynder
08. juni 2005 - 14:19 #6
Jeg får en fejl der hedder: Specified cast is not valid.
i decimal max = (decimal)myCmd1.ExecuteScalar(); linien
mvh
Avatar billede arne_v Ekspert
08. juni 2005 - 14:23 #7
Hvis du kan nøjes med en string værdi så prøv:

string max = myCmd1.ExeceuteScalar().ToString();

ellers må du udskrive

myCmd1.ExeceuteScalar().GetType().Name

og se hvad pokker det er
Avatar billede brian-johansen Nybegynder
08. juni 2005 - 14:26 #8
KANON ARNE_V

Du har lige reddet min dag mange tak !!!

mvh Brian

smidder du lige svar
Avatar billede arne_v Ekspert
08. juni 2005 - 14:30 #9
kommer her
Avatar billede necro655 Nybegynder
08. juni 2005 - 14:35 #10
prøv
max[0] = dt.Rows[0][0].ToString();
Avatar billede necro655 Nybegynder
08. juni 2005 - 14:35 #11
ups..

det her.
max = = dt.Rows[0][0].ToString();
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