Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
"SELECT TOP 1 id FROm MyDatabase ORDER BY id DESC" udskriver højeste værdi, og kommer kun med en record.
Hvad er det du mener med antal kolonner i en tabel? Det stykke SQL kode du skriver her, vil da aldrig kunne fortæller dig hvor mange columns der er i din tabel.
/Lasse
Synes godt om
Slettet bruger
03. februar 2007 - 15:00#2
I korte træk bare hovrdan jeg får udskrevet antallet af 'true' i rækken 'aktiv'
"AKTIV-RESULT" er bare det jeg kaldte resultat feltet. Det kan hedde hvad som helst.
Jeg er ikke lige helt sikker på hvordan du udfører din SQL sætning, men hvis jeg i min database fra min SQL Management studio kører denne query, så får jeg en række som indeholder en record hvor den har talt antallet af records sammen.
kalk_senarios_råvarer er bare en tabel jeg lige havde liggende.
SELECT COUNT(*) as "AKTIV-RESULT" FROM kalk_senarios_råvarer
OurConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("db/content.mdb")+";"); //OurCommand = new OleDbCommand("SELECT aktiv FROM opskrifter WHERE aktiv='true'",OurConnection); OurCommand = new OleDbCommand("SELECT COUNT(*) as 'AKTIV-RESULT' FROM opskrifter WHERE aktiv=true",OurConnection); OurDataAdapter = new OleDbDataAdapter(OurCommand);
Ok. Det er ikke SQL sætningen som indeholder fejl.
Jeg tror nærmere det er dit datagrid som fejer.
Hvad hedder de felter du har i et datagrid? En af dem skal gerne have samme navn som resultatfeltet i SQL sætningen. Jeg er 99,999999999% sikker på at det er derfor du får fejl.
/Lasse
Synes godt om
Slettet bruger
03. februar 2007 - 16:47#12
Som du kan se bruger jeg ikke et DataGrid men en Repeater. Jeg har copy-pastet navnet fra resultatfeltet og ned i repeateren og omvendt adskellige gange med samme resultat hver gang :-(
Ja NU udskriver den et tal, men ikke det rigtige. I tabellen er der 65 kolonner hvoraf de 45 er sat til 'True' men tallet den udskriver er 62??? *sight*
Jeg er lidt forvirret. Er det kolonner (aka felter - engelsk: columns / fields) eller rækker (aka individer - engelsk: rows / records) du vil tælle?
Hvis det virkelig er kolonner/felter i en bestemt række/record (eller evt. i alle rækker/records) du vil tælle, kan det ikke bare gøres med en simpel COUNT(*). Men hele dit setup indikerer også mere, at du bare ikke har helt styr på kolonne/række begrebet. Har jeg ret?
Hvis jeg skulle gætte på, hvad problemet kunne være, ville jeg nok prøve at anvende et andet navn på resultatfeltet (på COUNT(*) funktionen) end navnet på det felt der selekteres på, da det muligvis virker forvirrende.
Hvilken felttype i databasen er det felt hvor siger der står 'True' i?
Du sætter ' ' rundt om True, men True er en boolean værdi. Når man sætter ' ' rundt om feltnavn er det for at finde en tekst værdi. Det skal du i så fald have ændret. Det er både spild af plads i databasen og en programmeringsskamplet :-)...
Det kan måske også være grund til den fejl du får. Jeg ville foreslå dig at lave det om til Int værdier i stedet for, så du anvender 1 og 0 i stedet for noget tekst baseret. Er meget bedre at validere felterne med int værdier...
/Lasse
Synes godt om
Slettet bruger
04. februar 2007 - 14:42#18
Problemet er løst! I den sidste SQL-sætning var '' undladt omkring true. Da disse blev indsat virker sætning perfekt.
"SELECT COUNT(*) as aktiv FROM opskrifter WHERE aktiv='true'"
Synes godt om
Ny brugerNybegynder
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.