Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Räkna poster

Postades av 2003-06-11 14:21:31 - Benni Svensson, i forum c# (c-sharp), Tråden har 11 Kommentarer och lästs av 821 personer

Hur räknar jag posterna med reader?
<code>
reader.Read();
int räkna = count(reader["Område"].ToString());
</code>
fungerar ju inte, men hur får jag reda på hur många poster som finns i Område?


Svara

Sv: Räkna poster

Postades av 2003-06-11 14:30:33 - Fredrik Normén

Du kan tyvärr inte få ut antal rader i en DataReader, men du kan få ut antalet kolumner men det hjälper inte dig så mkt förstår jag.

Ett sätt att göra det på som inte är bra om man tänker på prestanda, det är att loopa genom alla rader i readern och ha en variabel som du adderar med 1.

Ett annat sätt är att du gör en extra SQL fråga som gör en COUNT på det du vill ha ut och använder dig då av ExecuteScalar för att utföra frågan, och för att få en bra prestanda.

En DataReader är tillför att enbart lista alla data den har från början till slut.
Vill du ha reda på antal rader så får du använda dig av ett DataSet.

/Fredirk N


Svara

Sv: Räkna poster

Postades av 2003-06-11 14:44:20 - Benni Svensson

OK, jag har då ändrat till ds.
Jag kan ju enkelt få fram alla posterna med:
<code>
int rader = ds1.Tables["frånChart"].Rows.Count;//denna visar 11 poster
</code>
Men det är av vikt att jag kan räkna område...
<code>
int iOmråde = ds1.Tables["frånChart"].Rows[?]["Område"].ToString();
</code>
Hur bör den se ut?


Svara

Sv: Räkna poster

Postades av 2003-06-11 14:55:46 - Fredrik Normén

Är Område ett värde som ligger i en kolumn, om så kan du använda dig av RowFilter.

Tex:

<code>
DataView myView = ds1.Tables["frånChart"].DefaultView;
myView.RowFilter = "namnetpådinkolumn = 'Område'"; //namnetpådinkolumn = skriv in namnet på din lolumn som innehåller värdet Område.
int rows = myView.Count;
</code>

/Fredrik N


Svara

Sv: Räkna poster

Postades av 2003-06-11 15:14:27 - Benni Svensson

Nja jag får ett error, när jag skriver som du visar mig
<code>
E:\C#\SawData\Saw\frmSAW.cs(750): Too many characters in character literal
</code>
Då har jag alltså skrivit:
<code>
DataView myView = ds1.Tables["frånChart"].DefaultView;
myView.RowFilter = 'Område';
int rows = myView.Count;
MessageBox.Show(rows.ToString());
</code>
Jag ville ha med MessageBoxen, för att kontrolera resultaten.
[REDIGERAT]
När jag ändrar till:
<code>
myView.RowFilter = ("Område").ToString();
</code>
då fungerade lite men jag fick följande error:
'Additional Information: Filter expression 'Område' does not evaluate to a Boolen term'
Det blir ju ganska så galet??


Svara

Sv: Räkna poster

Postades av 2003-06-11 15:42:10 - Johan Normén

Hej.

<code>
myView.RowFilter = 'Område';
</code>

skall vara:

<code>

myView.RowFilter = "Area = 'Område'"; OBS! AREA är det kolumnnamn Område ligger i.
</code>
Byt ut Area mot det kollumn namn du skall ha. Om ditt kolumnnamn är Område så behöver du ange det värde du söker efter. Ex om du har en Categori kolumn med
categorin Hästar så skriver du:
<code>

myView.RowFilter = "Category = 'Hästar';

</code>

//Johan N


Svara

Sv: Räkna poster

Postades av 2003-06-11 15:42:31 - Fredrik Normén

Se på min kod igen...

Där skrev jag att du måste ange ditt kolumnnamn som innehåller värdet områden.
Tex vi säger att kolummen som har värdet områden heter area, då skriver du tex:

<code>
DataView myView = ds1.Tables["frånChart"].DefaultView;
myView.RowFilter = "Area = 'Område'"; //<--------
int rows = myView.Count;
</code>

För du vill väl få ut de antal rader där en viss kolumn har värdet områden??

/Fredrik N


Svara

Sv: Räkna poster

Postades av 2003-06-11 16:01:34 - Benni Svensson

Ok nu tror jag att jag fattar(lite)
<code>
DataView myView = ds1.Tables["frånChart"].DefaultView;
myView.RowFilter = "Område = 'Sverige'";
int rows = myView.Count;
</code>
Blir ju ett resultat...
Jag vill alltså räkna hur många poster Område har.(jag vet att just nu är det tre)
(jag vill alltså INTE ha reda på hur många gånger 'Sverige' förekommer, utan hur MÅNGA olika områden det finns)
Är detta då rätt sätt att räkna på?


Svara

Sv: Räkna poster

Postades av 2003-06-11 16:38:08 - Johan Normén

Hej.

Skall du använda resten av data till något? alltså den du får ut via din fråga? eller
har du skapat frågan endast för att få fram x antal poster som har område?

Om så är fallet så rekomenderar jag executescalar och sedan en fråga med count, där du då frågat efter alla poster som har ett område.

Om du däremot vill återanvända en massa data ur din fråga, så kan man göra på många olika sätt, frågan är ju mer en design lösning.

Ex så kan du använda en reader gå genom hela readern, spara poster i en collection och räknar undertiden ut de värden du vill ha, när det är klart använder du de collections du skapade. Är du med?

typ:

<code>

int antalOmråden;
ArrayList områden = new ArrayList();

while(myReader.Read())
{
if(myReader("Områden") != "" || myReader("Område") != null)
antalOmråden ++

områden.Add(myReader("områden").ToString());
}

... (stänger connections m.m.)

foreach(string x in områden)
Console.WrtieLine(x);

</code>

Eller så kör du DataSet och gör sökningar i den.
Fördelen med DataSet är att du kan hoppa runt i den så mkt du vill, det kan du inte i en DataReader då den endast är forward- och readonly.

Som sagt det finns en hel del lösningar på ditt problem, frågan är bara hur du vill använda datan.

//Johan N


Svara

Sv: Räkna poster

Postades av 2003-06-11 17:20:51 - Benni Svensson

Hej MSL.
Först, jo jag skall använda resultatet. Jag har tidigare ställt frågan om MSChart, men fick ingen hjälp. Nu försöker jag iallafall på detta sättet.
Jag har alltså ändrat ifrån reader till DataSet.
Det första som jag måste ha tag på är antal områden, för att kunna använda som RowCount.

När det gäller ColumnCount, så är det redan klart:
<code>
int rader = ds1.Tables["frånChart"].Rows.Count;
</code>
Jag har get mig den på att på något sätt lösa detta problem, jag vill så gärna ha med en MSChart i mitt project.


Svara

Sv: Räkna poster

Postades av 2003-06-11 18:01:42 - Johan Normén

Hej.

Här kommer lite kodexempl med Mschart om det skulle hjälpa dig något?
Dock skriver i Visual Basic, så du får omvandla koden till C# själv.

Följande exempel visar en 3 dimensionel chart med 8 kolumner och rader med data.
Med satt Legend parameter.
<code>

Private Sub Command1_Click()
With MSChart1
' Displays a 3d chart with 8 columns and 8 rows
' data.
.ChartType = VtChChartType3dBar
.ColumnCount = 8
.RowCount = 8
For column = 1 To 8
For row = 1 To 8
.Column = column
.Row = row
.Data = row * 10
Next row
Next column
' Use the chart as the backdrop of the legend.
.ShowLegend = True
.SelectPart VtChPartTypePlot, index1, index2, _
index3, index4
.EditCopy
.SelectPart VtChPartTypeLegend, index1, _
index2, index3, index4
.EditPaste
End With
End Sub


</code>

Du får testa dig fram lite hur du vill ha ditt resultat.

//Johan N


Svara

Sv: Räkna poster

Postades av 2003-06-11 18:48:31 - Benni Svensson

Tack, nu finns det änteligen någonting att gå på.
En fråga:
<code>
.SelectPart VtChPartTypePlot, index1, index2, _
index3, index4
.EditCopy
.SelectPart VtChPartTypeLegend, index1, _
index2, index3, index4
</code>
index1 osv vad är det för värde?
Series?


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 155
27 952
271 704
739
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies