一. 本地mysql数据库
我的本地数据库设计是这样的
数据库服务器名称: restful_api
使用表: location
username: root
password: root
后面数据库连接部分请自行根据自己数据更改
二. 实现过程
数据模板基类:
这个类就是用于get和set操作. 对应数据格式要与数据库的字段数据格式一致.
(类似java的模型层)
class LocationData { private string _time; public string Time { get { return _time; } set { _time = value; } } private decimal _id; public decimal Id { get { return _id; } set { _id = value; } } private decimal _value; public decimal Value { get { return _value; } set { _value = value; } } }数据库连接类:
这个类用于与本地mysql数据库建立连接, 这个类不清楚或不太理解的小伙伴要仔细理解每一段代码的含义
由于要用到MySqlConnection等mysql连接的类, 所以先把项目应用mysql安装目录下的Mysql.Data.dll.
List<CarData> list = null; string ConString = "server=localhost;User Id=root;password=root;Database=restful_api;SslMode = none;"; MySqlConnection conn = new MySqlConnection(ConString);//连接数据库 ConString是提交数据库路径, 账号密码的, 有一点需要特别注意, SslMode=none; 如果不加这个的话就会编译失败, 因为数据库不允许ssl连接.
MySqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "select * from location";//从表里选择数据,待会取前五个 MySqlDataReader dr = cmd.ExecuteReader();
MySqlCommand类是mysql数据库命令类, 这里使用的数据库操作是获取数据库location表中的所有数据.
ps: 由于mysql数据库版本不同, 它的语法也有一些不同, 如果发现错误, 请根据自己的数据库版本写正确的语句.
MySqlDataReader dr = cmd.ExecuteReader();从数据库读入数据, 接下来就是要办数据取出来放入之前的locationdata模板中. class LocationDA { public List<LocationData> select() { List<LocationData> list = null; string ConString = "server=localhost;User Id=root;password=root;Database=restful_api;SslMode = none;"; MySqlConnection conn = new MySqlConnection(ConString);//连接数据库 try { conn.Open();//打开通道,建立连接,可能出现异常,使用try catch语句 Console.WriteLine("已经建立连接"); //在这里使用代码对数据库进行增删查改 } catch (MySqlException ex) { Console.WriteLine("建立连接失败!"); Console.WriteLine(ex.Message); } //SqlCommand cmd = conn.CreateCommand(); MySqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "select * from location";//从表里选择数据,待会取前五个 MySqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { list = new List<CarData>(); while (dr.Read()) { LocationData data = new LocationData(); data = new LocationData(); data.Time = dr["time"].ToString(); data.Id = (int)dr["id"]; data.Value = (int)dr["value"]; list.Add(data); } } return list; cmd.Dispose(); conn.Close(); } }初始化操作
为了能够让程序启动就显示图标, 我们还要在Form1中加一些初始化操作
当然这里默认是柱状图, 如果想要折线图, 在chart控件的属性里更改就OK了
//一些初始化操作 public Form1() { InitializeComponent(); //setChart(); //chart1 List<CarData> list = new CarDA().select(); if (list != null) { chart2.DataSource = list; chart2.Series["Series1"].XValueMember = "id"; chart2.Series["Series1"].YValueMembers = "value"; } }三. 显示结果