⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 default.aspx.cs

📁 这是asp.net^和Visual C++Sharp编写的串并口通讯的书籍 源代码
💻 CS
字号:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.Data.SqlClient;  //添加引用
using System.Drawing;
using System.Collections;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        CreateImage();
    }

    private void CreateImage()
    {
        //把连接字串指定为一个常量
        string strconn = "Server=(local);Database=db_05;Uid=sa;Pwd=";
        SqlConnection Con = new SqlConnection(strconn);
        Con.Open();
        string cmdtxt = "select *  from 商品销售表";
        SqlCommand Com = new SqlCommand(cmdtxt, Con);
        DataSet ds = new DataSet();
        SqlDataAdapter Da = new SqlDataAdapter(Com);
        Da.Fill(ds);
        Con.Close();
        float Total = 0.0f, Tmp;
        int iloop;
        for (iloop = 0; iloop < ds.Tables[0].Rows.Count; iloop++)
        {
            //转换成单精度。也可写成Convert.ToInt32
            Tmp = Convert.ToSingle(ds.Tables[0].Rows[iloop]["订货数量"]);
            Total += Tmp;
        }

        //设置字体,fonttitle为主标题的字体
        Font fontlegend = new Font("verdana", 9), fonttitle = new Font("verdana", 10, FontStyle.Bold);

        //背景宽
        int width = 230;
        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实例
        Bitmap objbitmap = new Bitmap(width, height);
        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]["订货数量"]) / Total * 360);
            currentdegree += Convert.ToSingle(ds.Tables[0].Rows[iloop]["订货数量"]) / 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]["商品名"]) + " —— " + Convert.ToString(Convert.ToSingle(ds.Tables[0].Rows[iloop]["订货数量"]) * 100 / Total).Substring(0, 5) + "%", fontlegend, blackbrush,
         20, height - legendheight + fontlegend.Height * iloop + 1);
        }
        //图像总的高度-一行字体的高度,即是最底行的一行字体高度(height - fontlegend.Height )
        objgraphics.DrawString("商品总数是:" + Convert.ToString(Total), fontlegend, blackbrush, 5, height - fontlegend.Height);
        Response.ContentType = "image/gif";
        objbitmap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);

        objgraphics.Dispose();
        objbitmap.Dispose();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -