CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

应该是简单问题,谢谢

楼主htys3(海天一舍)2003-12-02 17:42:06 在 .NET技术 / C# 提问

show.aspx片段如下:  
   
  <tr   align="middle"   valign="center">  
      <td   width="40%">  
          <asp:Label   id="a_answer"   runat="server"></asp:Label>  
      </td>  
      <td   width="40%">  
          <asp:Image   id="Image1"   runat="server"   Height="6px"></asp:Image>  
      </td>  
      <td   width="10%">  
          <asp:Label   id="a_vote"   runat="server"></asp:Label>票  
      </td>  
      <td   width="10%">%</td>  
  </tr>  
   
  show.aspx.cs片段如下:  
  SqlConnection   myConnection   =   new   SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);  
  SqlCommand   cmdGetAnswer   =   new   SqlCommand("SELECT   *   FROM   Answer   where   q_id   =   1",myConnection);  
  myConnection.Open();  
  dtrGetAnswer=cmdGetAnswer.ExecuteReader();  
  while   (dtrGetAnswer.Read())  
  {  
      i=i+1;  
      if   (all_vote==0)  
          a_percent=0;  
      else  
          a_percent=System.Convert.ToInt32(dtrGetAnswer["a_vote"])/all_vote*100;  
      a_answer.Text=dtrGetAnswer["a_answer"].ToString();  
      Image1.ImageUrl="images/bar/bar"   +   i   +".gif";  
      Image1.Attributes.Add("width",a_percent.ToString()   +   "%");  
      a_vote.Text=dtrGetAnswer["a_vote"].ToString();  
  }  
   
  q_id   =   1的记录有4条,如何将其读出来全部显示,因为涉及图片问题,所以没有用DataGrid,请问要怎么办?谢谢拉 问题点数:70、回复次数:5Top

1 楼htys3(海天一舍)回复于 2003-12-03 14:26:32 得分 0

upTop

2 楼veaven(风林火山)回复于 2003-12-03 18:07:10 得分 10

建议使用DataList  
  编辑其模板列  
  然后在ItemCreate事件中写代码,显示数据Top

3 楼camelials(星期五)回复于 2003-12-03 18:43:32 得分 60

用下面的好玩一点:  
  //用asp.net画饼图(可用于各种投票程序)  
  //和asp相比asp.net拥有更强大的功能,使用gdi+可以轻易实现以前很多不能办到的图形功能。  
  //首先在c:\中建库mess.mdb,并建表title.  
  //建二个字段,title(char型),point(int型)  
  //非常满意   281  
  //比较满意   297  
  //还凑合   166  
  //不满意   416  
  //我还写了画折线图和条形图的部分,目前正在把它们全部写进一个类中。需要的可以和我联系:mailto:ouyang76@263.net  
  <%@   Page   Language="C#"   %>  
  <%@import   namespace="System.Data"%>  
  <%@import   namespace="System.Data.OleDb"%>  
  <%@import   namespace="System.Drawing"%>  
  <%@import   namespace="System.Drawing.Imaging"%>  
  <script   language="c#"   runat="server">  
  public   void   page_load(Object   obj,EventArgs   e)  
  {  
  //把连接字串指定为一个常量  
  const   String   strconn   =   "Provider=Microsoft.Jet.OLEDB.4.0;"   +    
  "Data   Source=c:\\mess.mdb";  
  OleDbConnection   conn=new   OleDbConnection(strconn);  
  conn.Open();  
  string   sql="select   *   from   title";  
  OleDbCommand   cmd=new   OleDbCommand(sql,conn);  
  DataSet   ds=new   DataSet();  
  OleDbDataAdapter   adapter1=new   OleDbDataAdapter(cmd);  
  adapter1.Fill(ds);  
  conn.Close();  
  float   total=0.0f,tmp;  
  int   iloop;    
  for(iloop=0;iloop<ds.Tables[0].Rows.Count;iloop++)  
  {  
  tmp=Convert.ToSingle(ds.Tables[0].Rows[iloop]["point"]);//转换成单精度,投票不可能投半票。也可写成Convert.ToInt32  
  total+=tmp;  
  }  
  //Response.Write(Convert.ToString(total));    
   
   
  Font   fontlegend=new   Font("verdana",9),fonttitle=new   Font("verdana",10,FontStyle.Bold);//设置字体  
  //fonttitle为主标题的字体  
   
   
  int   width=230;//白色背景宽  
  const   int   bufferspace=15;  
  int   legendheight=fontlegend.Height*(ds.Tables[0].Rows.Count+1)+bufferspace;  
  int   titleheight   =   fonttitle.Height   +   bufferspace;  
  int   height   =   width   +   legendheight   +   titleheight   +   bufferspace;//白色背景高  
  int   pieheight   =   width;  
  Rectangle   pierect=new   Rectangle(0,titleheight,width,pieheight);  
   
   
  //加上各种随机色  
  ArrayList   colors   =   new   ArrayList();  
  Random   rnd   =   new   Random();  
  for   (iloop   =   0;   iloop   <   ds.Tables[0].Rows.Count;   iloop++)  
  colors.Add(new   SolidBrush(Color.FromArgb(rnd.Next(255),   rnd.Next(255),   rnd.Next(255))));  
   
   
  Bitmap   objbitmap=new   Bitmap(width,height);//创建一个bitmap实例  
  //Bitmap   objbitmap=new   Bitmap(230,500);//创建一个bitmap实例  
  Graphics   objgraphics=Graphics.FromImage(objbitmap);  
   
   
  objgraphics.FillRectangle(new   SolidBrush(Color.White),   0,   0,   width,   height);//画一个白色背景  
  objgraphics.FillRectangle(new   SolidBrush(Color.LightYellow),   pierect);//画一个亮黄色背景  
  //以下为画饼图(有几行row画几个)  
  float   currentdegree=0.0f;  
  for   (iloop   =   0;   iloop   <   ds.Tables[0].Rows.Count;   iloop++)  
  {  
  objgraphics.FillPie((SolidBrush)   colors[iloop],   pierect,   currentdegree,  
  Convert.ToSingle(ds.Tables[0].Rows[iloop]["point"])   /   total   *   360);  
  currentdegree   +=   Convert.ToSingle(ds.Tables[0].Rows[iloop]["point"])   /   total   *   360;  
  }  
  //---以下为生成主标题  
  SolidBrush   blackbrush=new   SolidBrush(Color.Black);  
  string   title="本次《程序员大本营》推出了配套的专刊,您对专刊满意吗?";  
  StringFormat   stringFormat   =   new   StringFormat();  
  stringFormat.Alignment   =   StringAlignment.Center;  
  stringFormat.LineAlignment   =   StringAlignment.Center;  
   
   
  objgraphics.DrawString(title,   fonttitle,   blackbrush,    
  new   Rectangle(0,   0,   width,   titleheight),   stringFormat);  
  //列出各字段与得票数  
  objgraphics.DrawRectangle(new   Pen(Color.Black,   2),   0,   height   -   legendheight,   width,   legendheight);  
  for   (iloop   =   0;   iloop   <   ds.Tables[0].Rows.Count;   iloop++)  
  {  
  objgraphics.FillRectangle((SolidBrush)   colors[iloop],   5,   height   -   legendheight   +   fontlegend.Height   *   iloop   +   5,   10,   10);  
  objgraphics.DrawString(((String)   ds.Tables[0].Rows[iloop]["title"])   +   "   -   "   +   Convert.ToString(ds.Tables[0].Rows[iloop]["point"]),   fontlegend,   blackbrush,    
  20,   height   -   legendheight   +   fontlegend.Height   *   iloop   +   1);  
  }  
  //  
  objgraphics.DrawString("总票数是:"+Convert.ToString(total),fontlegend,blackbrush,   5,   height   -   fontlegend.Height   );  
  //图像总的高度-一行字体的高度,即是最底行的一行字体高度(height   -   fontlegend.Height   )  
  Response.ContentType="image/jpeg";  
  objbitmap.Save(Response.OutputStream,ImageFormat.Jpeg);  
  //objbitmap.Save("myyyyyyyyyyy.jpg",   ImageFormat.Jpeg);//输出到文件  
   
   
  objgraphics.Dispose();  
  objbitmap.Dispose();  
  }  
  </script>  
   
   
   
  Top

4 楼camelials(星期五)回复于 2003-12-03 18:47:46 得分 0

如果还是想用把一张图片的width*100,然后后按比率显示投票的结果,可以参考下面:  
  SPVote是一个Span。  
   
  MyDataBase   view=new   MyDataBase();  
  view.SqlString="select   *   from   tb_vt   where   l_fb=1";  
  int   QestionCount=view.GetDataSet.Tables[0].Rows.Count;  
  for(int   j=0;j<QestionCount;j++)  
  {  
  SPVote.InnerHtml+="<tr><TD   colspan=\"3\"   align=\"middle\">";  
  SPVote.InnerHtml+="<font   face=\"幼圆\"   size=\"5\"   color=\"#FF9933\"><b>网上调查结果查看</b></font>";  
  SPVote.InnerHtml+="</td></tr>";  
  //  
  SPVote.InnerHtml+="<tr><TD   colspan=\"3\"   align=\"middle\">";  
  SPVote.InnerHtml+=view.GetDataSet.Tables[0].Rows[j]["ch_title"].ToString();  
  SPVote.InnerHtml+="</td></tr>";  
  int   count=0;  
  MyDataBase   MyAns=new   MyDataBase();  
  MyAns.SqlString="select   *   from   vote   where   v_id="+view.GetDataSet.Tables[0].Rows[j]["v_id"].ToString();  
  for(int   i=0;i<MyAns.GetDataSet.Tables[0].Rows.Count;i++)  
  {  
  count=count+Convert.ToInt32(MyAns.GetDataSet.Tables[0].Rows[i]["c_num"].ToString());  
  }  
  for(int   i=0;i<MyAns.GetDataSet.Tables[0].Rows.Count;i++)  
  {  
  SPVote.InnerHtml+="<tr><td>";  
  SPVote.InnerHtml+=MyAns.GetDataSet.Tables[0].Rows[i][1].ToString();  
  SPVote.InnerHtml+="</td><td>";  
  SPVote.InnerHtml+="得";  
  SPVote.InnerHtml+=MyAns.GetDataSet.Tables[0].Rows[i][2].ToString();  
  SPVote.InnerHtml+="票";  
  SPVote.InnerHtml+="</td><td>";  
  int   percentage=100*Convert.ToInt32(MyAns.GetDataSet.Tables[0].Rows[i]["c_num"].ToString())/count;  
  SPVote.InnerHtml+="投票率:"+"<img   src=\"images\\back.gif\"   height=10   width="+200*Convert.ToInt32(MyAns.GetDataSet.Tables[0].Rows[i]["c_num"].ToString())/count+">"+"   "+percentage.ToString()+"%";  
  SPVote.InnerHtml+="</td></tr>";  
   
  }  
  SPVote.InnerHtml+="</table>";  
  SPVote.InnerHtml+="<p></p>";  
  SPVote.InnerHtml+="总共";  
  SPVote.InnerHtml+=count.ToString();  
  SPVote.InnerHtml+="人参加投票,谢谢您的参与!";  
  SPVote.InnerHtml+="<p></p>";Top

5 楼camelials(星期五)回复于 2003-12-03 18:53:14 得分 0

上面用到了两个表:  
  一个问题表:tb_vt    
  一个回答项表:vote(通过记录tb_vt的id两表关联)  
  上面代码可同时显示出所有已经发布的问题的投票结果(tb_vt中字段:l_fb=1的所以问题)。所以用了两个for循环来嵌套的。  
  看看关键的代码,应该解决你的问题。  
  Top

相关问题

  • 应该是简单问题
  • 应该是一个简单的问题
  • 应该是很简单的问题
  • 应该是一个简单的问题
  • 应该是个简单的问题。
  • 应该很简单
  • 应该是个简单问题,但是我被卡住了
  • 应该挺简单的,可惜我还是不会
  • 应该会是简单的问题……蛇形阵的。
  • 出错处理不执行,应该是个简单问题。

关键词

  • asp.net
  • 代码
  • view
  • asp
  • spvote
  • innerhtml+
  • dtrgetanswer
  • myans
  • getdataset
  • vote

得分解答快速导航

  • 帖主:htys3
  • veaven
  • camelials

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo