โมดูลฟังก์ชันการลงคะแนนเป็นสิ่งที่ขาดไม่ได้ในการดูผลการลงคะแนน การใช้แถบความคืบหน้าเพื่อแสดงผลการลงคะแนนแต่ละรายการสามารถให้ผลที่ชัดเจน ต่อไปนี้เป็นวิธีการของฉัน โปรดให้ความกระจ่างแก่ฉัน:
1: สร้างรูปภาพเพื่อใช้เป็นแถบความคืบหน้า คุณจะต้องใช้รูปภาพขนาดเล็กมาก เช่น สูง 20px และกว้าง 1px
2: แทรกตัวควบคุมรูปภาพลงในเซลล์ที่จะแสดงแถบความคืบหน้า และตั้งค่า imageUrl เป็นตำแหน่งของรูปภาพที่เสร็จสมบูรณ์
3: ใช้อ็อบเจ็กต์ dataReader dr เพื่อบันทึกจำนวนคะแนนโหวตที่ได้รับสำหรับแต่ละรายการ ใช้ผลรวมตัวแปรประเภท int เพื่อบันทึกจำนวนคะแนนเสียงทั้งหมดที่คัดออก และกำหนดตัวแปรประเภทคู่สำหรับแต่ละรายการเพื่อบันทึกผลลัพธ์ของการหาร จำนวนโหวตแต่ละรายการด้วย (/) จำนวนโหวตทั้งหมด (ทศนิยม) จากนั้นกำหนดตัวแปรประเภท int เพื่อบันทึกความยาวของแถบความคืบหน้าที่จะแสดงในที่สุด (ใช้ตัวแปรประเภทคู่ก่อนหน้า * ความยาวของเซลล์ ใช้เพื่อแสดงแถบความคืบหน้า จากนั้นบังคับให้แปลงเป็นประเภท int) กำหนดความยาว เพียงระบุแอตทริบิวต์ความกว้างของรูปภาพ ต่อไปนี้คือข้อมูลโค้ดของฉัน ซึ่งแสดงแถบความคืบหน้าสี่แถบ:
SqlCommand cmd=new SqlCommand("select * from TvoteNum order by Vid",con);//คำสั่ง SQL เพื่อค้นหาผลการลงคะแนนเสียงของแต่ละรายการ
SqlDataReader dr=cmd.ExecuteReader();
......
SqlCommand cmd1=new SqlCommand("select sum(Vnum) from TvoteNum",con1);//คำสั่ง SQL เพื่อค้นหาจำนวนโหวตทั้งหมด
int sum=Convert.ToInt32(cmd1.ExecuteScalar());
-
dr.Read();//อ่านบันทึกแรกของวัตถุ datareader
this.Label1.Text=dr.GetInt32(1).ToString();//จำนวนโหวตสำหรับรายการแรก
double w1=(Convert.ToDouble(this.Label1.Text)/sum);//จำนวนโหวตสำหรับรายการนี้คิดเป็นเปอร์เซ็นต์ของจำนวนโหวตทั้งหมด
int wid1=(int)(w1*310);//แปลงเป็นพิกเซลเฉพาะ 310 คือความยาวของเซลล์ที่จะใช้แสดงแถบความคืบหน้า
this.Image1.Width=wid1;//ความกว้างที่กำหนดให้กับรูปภาพ
dr.Read();//อ่านบันทึกที่สอง
this.Label2.Text=dr.GetInt32(1).ToString();
double w2=(Convert.ToDouble(this.Label2.Text)/sum);
int wid2=(int)(w2*310);
นี้.Image2.Width=wid2;
dr.Read();//อ่านบันทึกที่สาม
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();//อ่านบันทึกที่สี่
this.Label4.Text=dr.GetInt32(1).ToString();
สองเท่า w4=(Convert.ToDouble(this.Label4.Text)/sum);
int wid4=(int)(w4*310);
นี้.Image4.Width=wid4;
......