Avatar billede tjgrindsted Nybegynder
31. marts 2007 - 14:35 Der er 30 kommentarer og
1 løsning

Udskriv Count fra en Select

Hej

Hvis jeg har:

SELECT *, COUNT(myimages) AS ImageCount ......

hvordan ser udskrift linjen så ud for .NET.

<%# Response.Write("ImageCount") %> eller !?
Avatar billede kalp Novice
31. marts 2007 - 14:43 #1
select count(*) as ImageCount
Avatar billede kalp Novice
31. marts 2007 - 14:46 #2
<% Response.Write("ImageCount") %>
Avatar billede kalp Novice
31. marts 2007 - 14:46 #3
eller går selvfølgelig ud fra du har læst det ud med en SqlDateReader?

<%= Reader("ImageCount") %>
Avatar billede tjgrindsted Nybegynder
31. marts 2007 - 14:53 #4
Skal jeg ikkr bruge RepeaterImagesList og ikke Reader når min connection er som denne:

Private Sub OpenDB()

        DBConnection = New OleDbConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
        SQLString = "" & Session("imli") & ""
        DBAdapter = New OleDbDataAdapter(SQLString, DBConnection)
        DBDataSet = New DataSet()
        DBAdapter.Fill(DBDataSet, "Images")

        DBDataView = New DataView(DBDataSet.Tables("Images"))
        RepeaterImagesList.DataSource = DBDataView
        RepeaterImagesList.DataBind()

    End Sub
Avatar billede kalp Novice
31. marts 2007 - 20:23 #5
det VB hehe.. skod.. men

det noget med

response.write(DBDataSet.Tables[0].Rows[0])

vil jeg mene
Avatar billede tjgrindsted Nybegynder
31. marts 2007 - 22:17 #6
Hvis jeg bruger det på min main side og min connection i min code_behind så får jeg denne fejl:

'DefaultVB.DBDataSet' is not accessible in this context because it is Privat
Avatar billede kalp Novice
01. april 2007 - 01:59 #7
ja men et eller andet sted har du jo erklæret dit dataset som private.. så må du gøre den public som fejlen antyder.

dvs. du har skrevet ca. dette

private DataSet DBDataSet;

eller bare

DataSet DBDataSet;

men du skal skrive

public DataSet DBDataSet;
Avatar billede tjgrindsted Nybegynder
01. april 2007 - 10:35 #8
Ja men hvis jeg laver
Private Sub OpenDB()til
Public Sub OpenDB() så kommer den med samme fejl selvom den ikke er privat mere.
Avatar billede kalp Novice
01. april 2007 - 11:53 #9
men hvorfor sætter du ikke bare værdien fra din codebehind fil? den har jo adgang til elementerne på aspx siden
Avatar billede tjgrindsted Nybegynder
01. april 2007 - 18:21 #10
Kalp jeg er ret ny i .Net så vil du ikke lige forklare hvordan jeg evt. skulle sætte den op.
Avatar billede kalp Novice
02. april 2007 - 00:07 #11
hvis du placere en ASP textbox på din ASPX side så får den typisk et id.. f.eks textbox1.

så kan du fra din codebehind fil skrive..

textbox1.Text = DBDataSet.Tables[0].Rows[0];
Avatar billede tjgrindsted Nybegynder
02. april 2007 - 00:50 #12
Jeg prøver lige at give dig et eks. og så lidt af min kode så du ved hvad jeg vil. håber du vil hjælpe med det sidste for er lidt forviret nu.

PT trækker jeg en record ud for at få det til at virke med COUNT.

Jeg vil nemlig gerne trække "ImageTitle" ud også, det jeg skal bruge COUNT til er til at tælle alle de steder sammen hvor "ImageDate" er ens. så jeg får "ImageTitle" og antal billeder.

Så hvis jeg har
20061203
20061203
20061203
20061203
20070102
20070215
20070215
20070315

Så vil den jo hoppe 20070315 over da den er i TOP1

men så vil jeg have skrevet
"ImageTitle" og Antal billeder med COUNT evt.
(2) Billeder fra 15/2 2007
(1) Billeder fra 2/1 2007
(4) Billeder fra 3/12 2006

derfor har jeg en repeater, men ret mig gerne hvis jeg er på gal vej.


Hvis jeg har en Code_Behind med en Privat Sub som denne:


kodeeksempel...
    Public Sub OpenDB7()

        DBConnection7 = New OleDbConnection(ConfigurationManager.ConnectionStrings("ConnStringDogs").ConnectionString)
        SQLString7 = "SELECT COUNT(ImageDate) AS ImageCount FROM EnggaardImages WHERE ImageDate NOT IN (SELECT TOP 1 ImageDate FROM EnggaardImages ORDER BY ImageDate DESC)ORDER BY ImageDate DESC"
        DBAdapter7 = New OleDbDataAdapter(SQLString7, DBConnection7)
        DBDataSet7 = New DataSet()
        DBAdapter7.Fill(DBDataSet7, "EnggaardImages")

        DBDataView7 = New DataView(DBDataSet7.Tables("EnggaardImages"))
        RepeaterImagesList.DataSource = DBDataView7
        RepeaterImagesList.DataBind()

    End Sub

Hvordan kan jeg så i en Repeater på min main default side få udskrevet "ImageCount" !? Hår prøvet flg. uden held:


kodeeksempel...

  <asp:Repeater ID="RepeaterImagesList" runat="server">
     
    <HeaderTemplate>
      <br />
    </HeaderTemplate>

    <ItemTemplate>
        <span>Det findes <% Response.Write(DBDataSet7.Tables[0].Rows[0].ItemArray[0]);%> Billeder</span>
    </ItemTemplate>

    <SeparatorTemplate>
        <br />
    </SeparatorTemplate>

    <FooterTemplate>
        <br />
    </FooterTemplate>
    </asp:Repeater>
Avatar billede kalp Novice
02. april 2007 - 12:38 #13
nu er jeg ikke vant til den der reapeter.. plejer at arbejde med SqlDataReader selv.

men vil også tro man skal ændre på SQL'en så den counter og grouper.

altså

select count(imagedate ) as imagecount, imagedate from dintabel group by imagedate



jeg kan sagtens lave eksemplet med en SqlDataReader..
men med den sql der kan man udlæse imagecount og imagedate pr. dato i databasen
Avatar billede tjgrindsted Nybegynder
02. april 2007 - 12:48 #14
Hej Kalp

Jeg skal lige hjem fra arbejde her kl 17:30 så kigger jeg lige på det og skriver kl 18:30.

Jeg hæver Point fra 30 til 100 da du har brugt en del tid allerede nu. så håber vi kan gøre dette færdigt.
Avatar billede kalp Novice
02. april 2007 - 12:57 #15
det ikke noget problem:)

hvis du stadig ikke kan få det til at virke så laver jeg et eksempel du kan downloade, men med brug af sqldatareader.
Avatar billede tjgrindsted Nybegynder
02. april 2007 - 17:55 #16
Hej Igen

Jeg har prøvet at lave min Select linje om uden Count:
"SELECT ImageDate, ImageTitle FROM EnggaardImages WHERE ImageDate NOT IN (SELECT TOP 1 ImageDate FROM EnggaardImages ORDER BY ImageDate DESC)ORDER BY ImageDate DESC"

og så virker det, så skriver den de titler der findes 1 gang selvom titlen findes på 3 billeder, men jeg vil jo gerne kunne skrive titlen og så det antal billeder der findes med de datoer der er ens som høre til titlen.

Begynder jeg at sætte Count på så kommer den med en fejl. håber du kan hjælpe.
Avatar billede kalp Novice
03. april 2007 - 01:42 #17
kan ikke se hvorfor du bruger top 1 ?

hvis du vil kan jeg som sagt lave et færdig kode eksempel til dig..

dette output du ville have?

(2) Billeder fra 15/2 2007
(1) Billeder fra 2/1 2007
(4) Billeder fra 3/12 2006
Avatar billede tjgrindsted Nybegynder
03. april 2007 - 10:36 #18
ja eller datoen skal være titlen den skal skrive

(2) Billeder fra Fælles billeder
(1) Billeder fra Januar
(4) Billeder fra 3 December

Top 1 bruger jeg da jeg ikke vil have den allerførste med da den bliver vist andet sted.
Avatar billede kalp Novice
03. april 2007 - 10:43 #19
intet problem..
jeg laver et færdigt eksempel til dig i løbet af dagen.. kan godt gå hen og blive om aftenen, men du får noget færdig kode med database så du kan se hvordan jeg har sat det sammen:)
Avatar billede tjgrindsted Nybegynder
03. april 2007 - 11:26 #20
okay jeg takker
Avatar billede kalp Novice
03. april 2007 - 20:13 #21
sådan

www.kalp.dk/groupDates.zip


beklager jeg er lidt langsom til at svare pt.. men har sgu haft lidt travlt:S
Avatar billede tjgrindsted Nybegynder
03. april 2007 - 21:58 #22
Helt iorden...vil du kunne omskrive det til VB !?
Avatar billede kalp Novice
03. april 2007 - 22:07 #23
hmm.. kan forsøge (programmere ikke VB)

men resultatet var som du var efter ikke?
Avatar billede tjgrindsted Nybegynder
03. april 2007 - 22:09 #24
Kan du få din reader til at bruge nogle af mine ting !?? evt connectionStringen !?

Og igen mange tak kan se det virker og Jeg er ret ny i (dot)Net men hvis jeg kan få rettet disse ændringer så tror jeg at jeg muligvis skal bruge Reader som du virker og ikke DataSet.
Avatar billede kalp Novice
03. april 2007 - 22:13 #25
du kan sagtens bruge et dataset, men kan du få min sql til at passe din database?
for så kan vi droppede din repeater og loope igennem dataset'et.
og udskrive værdierne med almindelig response.write

jeg har ikke anvendt repeateren selv nemlig
Avatar billede tjgrindsted Nybegynder
03. april 2007 - 22:44 #26
tror jeg har lavet det, det virker da som dit nu.

Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls

Partial Class Default2
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

        Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DSNbase.mdb;Persist Security Info=True"
        Dim oAccessConn As New OleDbConnection(sConnectionString)
        oAccessConn.Open()
        Dim oCmdSelect As New OleDbCommand("select count(date) as amount,date from somestuff group by date order by date desc", oAccessConn)
        Dim oReader As OleDBDataReader = oCmdSelect.ExecuteReader()

        While oReader.Read()

            Response.Write(("(" & oReader("amount").ToString() & ") billeder fra " & CType(oReader("date"), DateTime).ToString("dd-MM-yy")))
            Response.Write("<br />")

        End While
    End Sub
End Class
Avatar billede tjgrindsted Nybegynder
03. april 2007 - 22:49 #27
Jeg har kun lige en ting, for er blevet meget klogere pga. din hjælpe

i ASP 3.0

Der brugte man

If Not (objRS.BOF Or objRS.EOF) Then
..
Do While Not objRS.EOF
...
objRS.MoveNext
...
Loop


Synes Reader ligner meget men hvordan ville den se ud hvis dette skulle oversættes til ASP.NET !??

kan jeg bruger det samme !?
Avatar billede tjgrindsted Nybegynder
03. april 2007 - 23:42 #28
Kalp Jeg lavet et nyt spm. om det jeg lige spurgte om, vil ikke give din arm af bare fordi du har givet den ;)
Avatar billede tjgrindsted Nybegynder
03. april 2007 - 23:43 #29
og forresten 1000 tak skal jeg ikke lave et spm. med 70 Point mere som jeg gerne ville give for din hjælp !??
Avatar billede kalp Novice
04. april 2007 - 09:13 #30
Det er helt sådan her:) 30point er nok synes jeg:)
Avatar billede tjgrindsted Nybegynder
04. april 2007 - 10:39 #31
Okay men igen 1000 tak
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