Für die Anzeige der Abstimmungsergebnisse ist ein Abstimmungsfunktionsmodul unverzichtbar. Die Verwendung eines Fortschrittsbalkens zur Anzeige jedes Abstimmungsergebnisses kann einen klaren Effekt erzielen. Das Folgende ist meine Methode, bitte zögern Sie nicht, mich aufzuklären:
1: Erstellen Sie ein Bild zur Verwendung als Fortschrittsbalken. Sie benötigen nur ein sehr kleines Bild, z. B. 20 Pixel hoch und 1 Pixel breit.
2: Fügen Sie ein Bildsteuerelement in die Zelle ein, in der der Fortschrittsbalken angezeigt werden soll, und setzen Sie dessen imageUrl auf den Speicherort des fertigen Bildes.
3: Verwenden Sie ein dataReader-Objekt dr, um die Anzahl der für jedes Element entnommenen Stimmen zu speichern, verwenden Sie eine Variable vom Typ int, sum, um die Gesamtzahl der entnommenen Stimmen zu speichern, und definieren Sie für jedes Element eine Variable vom Typ Double, um das Ergebnis der Division zu speichern die Anzahl der einzelnen Stimmen durch (/) die Gesamtzahl der Stimmen (dezimal) und definieren Sie dann eine Variable vom Typ int, um die Länge des Fortschrittsbalkens zu speichern, der schließlich angezeigt werden soll (verwenden Sie die vorherige Variable vom Typ double * die Länge der Zelle). Wird verwendet, um den Fortschrittsbalken anzuzeigen und dann die Konvertierung in den Typ int zu erzwingen. Weisen Sie die Länge zu. Geben Sie einfach das Breitenattribut des Bildes an. Das Folgende ist mein Codeausschnitt, der vier Fortschrittsbalken anzeigt:
SqlCommand cmd=new SqlCommand("select * from TvoteNum order by Vid",con);//SQL-Anweisung, um die Abstimmungsergebnisse jedes Elements herauszufinden
SqlDataReader dr=cmd.ExecuteReader();
......
SqlCommand cmd1=new SqlCommand("select sum(Vnum) from TvoteNum",con1);//SQL-Anweisung, um die Gesamtzahl der Stimmen herauszufinden
int sum=Convert.ToInt32(cmd1.ExecuteScalar());
...
dr.Read();//Lesen Sie den ersten Datensatz des Datareader-Objekts
this.Label1.Text=dr.GetInt32(1).ToString();//Anzahl der Stimmen für das erste Element
double w1=(Convert.ToDouble(this.Label1.Text)/sum);//Die Anzahl der Stimmen für dieses Element macht den Prozentsatz der Gesamtzahl der Stimmen aus
int wid1=(int)(w1*310);//In bestimmte Pixel konvertieren, 310 ist die Länge der Zelle, die zum Anzeigen des Fortschrittsbalkens verwendet werden soll
this.Image1.Width=wid1;//Die dem Bild zugewiesene Breite
dr.Read();//Lesen Sie den zweiten Datensatz
this.Label2.Text=dr.GetInt32(1).ToString();
double w2=(Convert.ToDouble(this.Label2.Text)/sum);
int wid2=(int)(w2*310);
this.Image2.Width=wid2;
dr.Read();//Den dritten Datensatz lesen
this.Label3.Text=dr.GetInt32(1).ToString();
double w3=(Convert.ToDouble(this.Label3.Text)/sum);
int wid3=(int)(w3*310);
this.Image3.Width=wid3;
dr.Read();//Lesen Sie den vierten Datensatz
this.Label4.Text=dr.GetInt32(1).ToString();
double w4=(Convert.ToDouble(this.Label4.Text)/sum);
int wid4=(int)(w4*310);
this.Image4.Width=wid4;
......