1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > C#连接sqlserver数据库 插入数据 并且读取数据库数据画折线图。

C#连接sqlserver数据库 插入数据 并且读取数据库数据画折线图。

时间:2023-12-25 16:49:54

相关推荐

C#连接sqlserver数据库 插入数据 并且读取数据库数据画折线图。

这篇文章主要分为两个部分,1.连接数据库。2.读取数据库数据然后作图(chart控件)。

首先先讲一下连接数据库,我的环境是Visual Studio和sqlserver,先确保自己电脑装有数据库服务。

private void connectButton_Click(object sender, EventArgs e){//建立一个连接数据库的服务SqlConnection con = new SqlConnection();//data source是数据库的IP地址,. 表示的是本地ip,initial catalog是数据库的名字//下面两个分别是数据库的id和密码con.ConnectionString = "data source=.;initial catalog=DBname;user id=SA;pwd=123";//定义查看数据库的sqql指令String sql = "select * from DBname"; //定义sql插入语句String testsql = "insert into DBname(id,name) values(110,'张三')";try{//与数据库建立连接,如果连接失败会抛出异常con.Open();MessageBox.Show("成功连接数据库");//创建一个T-sql执行命令的过程SqlCommand cmd = con.CreateCommand();mandType = CommandType.Text;//插入数据mandText = testsql;cmd.ExecuteNonQuery();//查询数据mandText = sql;//执行命令并且得到一个读取sqlserver的流SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()){// 读取数据Console.WriteLine(dr[0].ToString() + "," + dr[1].ToString()); }dr.Close();//关闭执行}catch (Exception){Console.WriteLine("连接异常");throw;}finally{con.Close();MessageBox.Show("成功关闭数据库连接");}}

上面是一个简单的与数据库建立连接,并且执行插入和读取指令。

下面要对从数据库读取到的数据进行画图,比如,我读取到id和num两个,就要用id作为横坐标,num作为纵坐标。得到的图形大概入下面的图所示。

在画图之前首先要了解一下chart控件,chart控件主要分为五大部分:

最重要的是ChartAreas,Series。

ChartAreas理解为讲chart分为几部分,每部分可以单独的绘制一张表出来。Series就可以理解为每张表呈现什么样的类型图(比如说折线图,柱状图,饼图),都可以在Series中设置。更多详细的内容见/qq_27825451/article/details/81305387这篇帖子写的很到位。

下面又先上代码,在代码中都有详细的注释。

//查询数据库并且画图private void seekSql() {SqlConnection con = new SqlConnection();con.ConnectionString = "data source=.;initial catalog=FlareDB;user id=SA;pwd=123";try{con.Open();SqlCommand cmd = con.CreateCommand();mandType = CommandType.Text;//查询数据mandText = "select * from FlareTable";SqlDataReader dr = cmd.ExecuteReader();//新建两个列表来存放我们要画图的数据,因为chart接收的数据是ListList<int> idList = new List<int>();List<float> numList = new List<float>();while (dr.Read()){//要注意,在数据库中得到的id的数据类型是System.Integer,//num数据类型是System.Double,但是在某些列中,num是空值,所以在进行操作前 //要判断是否为空if (dr[1] is DBNull){ }else {Double tempdata = (Double)dr[1];varList.Add((float)tempdata);}idList.Add((int)dr[0]);}}//画图的函数drawLines(idList, varList);dr.Close();//关闭执行}catch (Exception){Console.WriteLine("连接异常");throw;}finally{con.Close();}}

//画图的函数private void drawLines(List<int> list1,List<float> list2) {List<int> xData = list1;List<float> yData = list2;//线条颜色chart1.Series[0].Color = Color.DeepSkyBlue;//线条粗细chart1.Series[0].BorderWidth = 1;//标记点中心颜色chart1.Series[0].MarkerColor = Color.DeepSkyBlue;//标记点大小chart1.Series[0].MarkerSize = 5;//标记点类型chart1.Series[0].MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;//绑定数据 chart1.Series[0].Points.DataBindXY(xData, yData);}

在上面画图的函数中,我简单的设置了表中点和线的基本样式,更多样式可以根据自己需求设置。

希望能够和大家多多交流学习,共同进步~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。