Modul fungsi pemungutan suara sangat diperlukan untuk melihat hasil pemungutan suara. Menggunakan bilah kemajuan untuk menampilkan setiap hasil pemungutan suara dapat memberikan efek yang jelas. Berikut cara saya, mohon pencerahannya:
1: Buatlah gambar untuk digunakan sebagai bilah kemajuan. Anda hanya memerlukan gambar yang sangat kecil, misalnya tinggi 20 piksel dan lebar 1 piksel.
2: Sisipkan kontrol gambar ke dalam sel tempat bilah kemajuan akan ditampilkan, dan atur imageUrl-nya ke lokasi gambar yang sudah selesai.
3: Gunakan objek dataReader dr untuk menyimpan jumlah suara yang diambil untuk setiap item, gunakan variabel tipe int jumlah untuk menyimpan jumlah total suara yang diambil, dan tentukan variabel tipe ganda untuk setiap item untuk menyimpan hasil pembagian jumlah suara individu dengan (/) jumlah total suara ( desimal), lalu tentukan variabel tipe int untuk menyimpan panjang bilah kemajuan yang akan ditampilkan pada akhirnya (gunakan variabel tipe ganda sebelumnya * panjang sel digunakan untuk menampilkan bilah kemajuan, dan kemudian memaksa konversi ke tipe int), tetapkan panjangnya Berikan saja atribut lebar gambar. Berikut ini cuplikan kode saya, yang menampilkan empat bilah kemajuan:
SqlCommand cmd=new SqlCommand("select * from TvoteNum order by Vid",con);//Pernyataan SQL untuk mengetahui hasil voting setiap item
SqlDataReader dr=cmd.ExecuteReader();
......
SqlCommand cmd1=new SqlCommand("select sum(Vnum) from TvoteNum",con1);//Pernyataan SQL untuk mengetahui jumlah total suara
int sum=Konversi.ToInt32(cmd1.ExecuteScalar());
...
dr.Read();//Baca record pertama dari objek datareader
this.Label1.Text=dr.GetInt32(1).ToString();//Jumlah suara untuk item pertama
double w1=(Convert.ToDouble(this.Label1.Text)/sum);//Jumlah suara untuk item ini merupakan persentase dari jumlah total suara
int wid1=(int)(w1*310);//Konversikan ke piksel tertentu, 310 adalah panjang sel yang akan digunakan untuk menampilkan bilah kemajuan
this.Image1.Width=wid1;//Lebar yang ditetapkan pada gambar
dr.Read();//Baca record kedua
this.Label2.Text=dr.GetInt32(1).ToString();
double w2=(Convert.ToDouble(ini.Label2.Teks)/jumlah);
int wid2=(int)(w2*310);
ini.Gambar2.Lebar=lebar2;
dr.Read();//Baca catatan ketiga
this.Label3.Text=dr.GetInt32(1).ToString();
double w3=(Convert.ToDouble(ini.Label3.Teks)/jumlah);
int wid3=(int)(w3*310);
ini.Gambar3.Lebar=lebar3;
dr.Read();//Baca record keempat
this.Label4.Text=dr.GetInt32(1).ToString();
double w4=(Convert.ToDouble(ini.Label4.Teks)/jumlah);
int wid4=(int)(w4*310);
ini.Gambar4.Lebar=lebar4;
......