투표 결과를 보려면 투표 기능 모듈이 필수적입니다. 진행 표시줄을 사용하여 각 투표 결과를 표시하면 명확한 효과를 얻을 수 있습니다. 다음은 제 방법입니다. 자유롭게 알려주시기 바랍니다.
1: 진행 표시줄로 사용할 사진을 만듭니다. 높이 20px, 너비 1px와 같은 아주 작은 사진만 있으면 됩니다.
2: 진행률 표시줄이 표시될 셀에 이미지 컨트롤을 삽입하고 해당 imageUrl을 완성된 그림의 위치로 설정합니다.
3: 항목별로 득표수를 저장하려면 dataReader 객체 dr을 사용하고, 총 득표수를 저장하려면 int형 변수 sum을 사용하고, 항목별로 double형 변수를 정의하여 분할 결과를 저장합니다. 개별 투표수를 전체 투표수(십진수)로(/)한 후 int형 변수를 정의하여 최종적으로 표시될 진행률 표시줄의 길이를 저장합니다(이전의 double형 변수 *셀의 길이 사용) 진행률 표시줄을 표시한 다음 강제로 int 유형으로 변환하고 길이를 할당합니다. 이미지의 너비 특성을 지정하면 됩니다. 다음은 4개의 진행률 표시줄을 표시하는 코드 조각입니다.
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);
this.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();
double w4=(Convert.ToDouble(this.Label4.Text)/sum);
int wid4=(int)(w4*310);
this.Image4.Width=wid4;
......