ZEDGRAPH画图心得,SQL语句构造!!!
/// <summary>
/// 画折线
/// </summary>
public void Drawline()
{ OleDbConnection odcConnection = new OleDbConnection(MyConnectionString); //打开连接 C#操作Access之按列读取mdb
odcConnection.Open();
OleDbCommand odCommandValue = odcConnection.CreateCommand();//value
OleDbCommand odCommandYear = odcConnection.CreateCommand();//year //!!!!!!!关键查询语句!!!!!!!!!!!
odCommandYear.CommandText = "select 年 from 洱海各月出流流量 order by 年 asc"; //读取year,按照升序排序
odCommandValue.CommandText = "select 全年平均 from 洱海各月出流流量 order by 年 asc ";
//读取-全年平均-项,并起按照年升序排序,解决了画图时“年份”和“全年平均”不匹配的问题, OleDbDataReader odrReaderValue = odCommandValue.ExecuteReader();//建立SQL查询value
OleDbDataReader odrReaderYear = odCommandYear.ExecuteReader();//建立SQL查询year double[] ArrValue;//数组定义
ArrValue = new double[];//初始化大小,分配内存
double[] ArrYear;//数组定义
ArrYear = new double[];
int im = , jm = ;
while (odrReaderValue.Read())
{
//读取列的每一个
ArrValue[im] = Convert.ToDouble(odrReaderValue["全年平均"]);
im++;
}
while (odrReaderYear.Read())
{ ArrYear[jm] = Convert.ToDouble(odrReaderYear["年"]);//读取列的每一个
jm++;
} odrReaderValue.Close();
odrReaderYear.Close();
odcConnection.Close(); int leng = ArrValue.Length; GraphPane MyPane = zedGraphControl1.GraphPane;
MyPane.Title.Text = "洱海年平均出流流量";
MyPane.XAxis.Title.Text = "年份";
MyPane.YAxis.Title.Text = "流量(立方米每秒)"; PointPairList pplist = new PointPairList();//显示点数组
for (int i = ; i < leng; i++)
{ pplist.Add(ArrYear[i], ArrValue[i]);//xaile是年,yaile是年平均流量值
} //画图
LineItem myCurve = MyPane.AddCurve("平均流量", pplist, Color.Red, SymbolType.Diamond);//标注样式 myCurve.Symbol.Fill = new Fill(Color.White);//背景填充白色
MyPane.XAxis.MajorGrid.IsVisible = true;//显示X网格
MyPane.YAxis.MajorGrid.IsZeroLine = true;//Y坐标不显示0坐标线
//MyPane.YAxis.MajorGrid.IsZeroLine = false;//Y坐标不显示0坐标线 // Align the Y axis labels so they are flush to the axis
MyPane.YAxis.Scale.Align = AlignP.Inside; //坐标范围划定
MyPane.YAxis.Scale.Min = -;
MyPane.YAxis.Scale.Max = ; MyPane.XAxis.Scale.Min = ;
MyPane.XAxis.Scale.Max = ; MyPane.Chart.Fill = new Fill(Color.White, Color.LightGray, 45.0f); // Add a text box with instructions
TextObj text = new TextObj(
"左键拖拽放大\n鼠标中键滚放缩\n右键菜单",
0.05f, 0.95f, CoordType.ChartFraction, AlignH.Left, AlignV.Bottom);
text.FontSpec.StringAlignment = StringAlignment.Near;
MyPane.GraphObjList.Add(text); zedGraphControl1.IsShowHScrollBar = true;
zedGraphControl1.IsShowVScrollBar = true;
zedGraphControl1.IsAutoScrollRange = true; zedGraphControl1.IsShowPointValues = true;
zedGraphControl1.PointValueEvent += new ZedGraphControl.PointValueHandler(MyPointValueHandler);
zedGraphControl1.AxisChange();
// Make sure the Graph gets redrawn
//zedGraphControl1.Invalidate(); } }
SQL查询语句构造好了查询的结果绘图才能一一对应,不然就乱了,年份和值对应不起来真让我蛋疼,不过重新通过构造SQL解决问题了。
public 洱海各月出流流量frm()
{
InitializeComponent();
Drawline();//画折线函数放在这个位置,解决了每次选择查询日期窗体加载时,重新绘制折线图问题
}
在前一篇随笔中的绘图有BUG,每次窗体重新加载,或者选择日期以后,都会重复画图,画的图不是重叠的,图标会不断地增多,蛋疼,尝试使用点击按钮控制绘图,但是感觉不太好,想了想还是让窗体初始化就绘图,这样就解决了以上重复绘图的BUG。
ZEDGRAPH画图心得,SQL语句构造!!!的更多相关文章
- Sql语句构造类,多字段新增或修改时,拼装sql语句比较方便
using System; using System.Collections.Generic; using System.Text; namespace MSCL { #region 使用示例 /* ...
- ZEDGRAPH画图心得
OleDbConnection odcConnection = new OleDbConnection(MyConnectionString); //打开连接 C#操作Access之按列读取mdb o ...
- mybatis中的动态SQL语句
有时候,静态的SQL语句并不能满足应用程序的需求.我们可以根据一些条件,来动态地构建 SQL语句. 例如,在Web应用程序中,有可能有一些搜索界面,需要输入一个或多个选项,然后根据这些已选择的条件去执 ...
- 画图解释SQL联合语句
画图解释SQL联合语句 http://blog.jobbole.com/40443/ 我认为 Ligaya Turmelle 的关于SQL联合(join)语句的帖子对于新手开发者来说是份很好的材料.S ...
- 转:画图解释 SQL join 语句
画图解释 SQL join 语句 我认为 Ligaya Turmelle 的关于SQL联合(join)语句的帖子对于新手开发者来说是份很好的材料.SQL 联合语句好像是基于集合的,用韦恩图来解释咋一看 ...
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
IT咨询顾问:一次吐血的项目救火 年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...
- laravel数据库操作sql语句用Eloquent ORM来构造
现在有查询语句: SELECT users.sNmame, users.iCreateTime, users_ext.iAge, users_ext.sSex FROM users LEFT JOIN ...
- MyBatis 构造动态 SQL 语句
以前看过一个本书叫<深入浅出 MFC >,台湾 C++ 大师写的一本书.在该书中写到这样一句话,“勿在浮沙筑高台”,这句话写的的确对啊.编程很多语言虽然相通,但是真正做还是需要认真的学习, ...
- 在mybatis中写sql语句的一些体会
本文会使用一个案例,就mybatis的一些基础语法进行讲解.案例中使用到的数据库表和对象如下: article表:这个表存放的是文章的基础信息 -- ------------------------- ...
随机推荐
- 发现 一个 http 压测库
代码库:https://github.com/wg/wrk 安装 https://github.com/wg/wrk
- python 处理命令行参数--转载
标题写了那么久,现在现在才有时间,整理下自己的思路.首先先总结下自己对sys模块的理解.手册上对sys的描述是系统参数和系统函数,这里的系统实际上是python解释器.这个模块提供了用户可以访问的解释 ...
- python 元组列表转为字典
#create a list l = [(), (), (), (), (), ()] d = {} for a, b in l: d.setdefault(a, []).append(b) prin ...
- Windows下使用pip安装python包是报错-UnicodeDecodeError: 'ascii' codec can't decode byte 0xcb in position 0
先交待下开发环境: 操作系统:Windows 7 Python版本:2.7.9 Pip版本:6.1.1 其他环境忽略 在windows下使用pip下载python包,出现如下错误 Collecting ...
- Qt5_容器_知识点记录
1.删除: 1.1.erase 1.2.remove / removeAt 2. 3. 4. 5.
- 算法笔记--区间dp
1.石子归并问题 dp[i][j]表示区间i到j合并所需的最小花费. 先求出小区间的最小花费,再转移到大的区间. 转移方程:dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1] ...
- Codeforces 893E - Counting Arrays
893E - Counting Arrays 思路:质因子分解. 对于每个质因子,假设它有k个,那么求把它分配到y个数上的方案数. 相当于把k个小球分配到y个盒子里的方案数. 这个问题可以用隔板法(插 ...
- 雷林鹏分享:Ruby 字符串(String)
Ruby 字符串(String) Ruby 中的 String 对象存储并操作一个或多个字节的任意序列,通常表示那些代表人类语言的字符. 最简单的字符串是括在单引号(单引号字符)内.在引号标记内的文本 ...
- Python 运算符重载
https://www.cnblogs.com/hotbaby/p/4913363.html
- 谈谈http与https
今天简单的来说一下http和https, 简单来讲: HTTP 是 超文本协议,TCP 端口是 80 HTTPS 是一种配合了SSL协议的.加密的HTTP 协议 ,TCP端口是 443 HTTP ...