求C#程序,画曲线图,调用数据库,要直接能运行 100
2个回答
展开全部
画温度变化折线图的一个程序,数据是从数据库中提取的。
public void CreateLine(ZedGraphControl zgc, string epc, PointPairList list3, PointPairList list1, PointPairList list2, PointPairList list4, PointPairList list5, double up, double uptemp, double down, double downtemp)
{
GraphPane myPane = zgc.GraphPane;
list3.Clear();
myPane.CurveList.Clear();
myPane.Title.Text = dataGridView1.Rows[0].Cells[1].Value.ToString().Trim() + "的温度变化曲线图";
string sqlstr = "select [温度值],[时间] from [温度表] where EPC码='" + epc + "'order by [时间] asc";
DataTable Dt = com.dt(sqlstr);
if (Dt.Rows.Count <= 0)
MessageBox.Show("无温度记录!", "提示");
else
{
for (int i = 0; i < Dt.Rows.Count; i++)
{
string Str = Dt.Rows[i]["时间"].ToString().Replace(".", "/");
Str = Str.Replace("-", "/");
Str = Str.Replace(" ", "/");
string[] array = Str.Split('/');
string str = "";
for (Int32 h = 0; h <= array.Length - 2; h++)
{
str = str + array[h];
}
double x3 = Convert.ToDouble(str);
double y1, y2, y4, y5;
y1 = up;
y2 = uptemp;
double y3 = Convert.ToDouble(Dt.Rows[i]["温度值"].ToString());
y4 = down;
y5 = downtemp;
list1.Add(x3, y1);
list2.Add(x3, y2);
list3.Add(x3, y3);
list4.Add(x3, y4);
list5.Add(x3, y5);
}
//将时间作为X轴的标尺
string[] xLabels = new string[Dt.Rows.Count];
for (int i = 0; i < Dt.Rows.Count; i++)
xLabels[i] = Dt.Rows[i]["时间"].ToString().Trim();
myPane.XAxis.Type = AxisType.Text;
myPane.XAxis.Scale.TextLabels = xLabels;
// 创建每个折线
LineItem myCurve1 = myPane.AddCurve("上限", list1, Color.Red);
LineItem myCurve2 = myPane.AddCurve("上预警值", list2, Color.Purple);
LineItem myCurve3 = myPane.AddCurve("温度值", list3, Color.Blue);
LineItem myCurve4 = myPane.AddCurve("下预警值", list4, Color.GreenYellow);
LineItem myCurve5 = myPane.AddCurve("下限", list5, Color.Green);
zedGraphControl1.AxisChange();
// 设置图标的颜色和渐变色
myPane.Chart.Fill = new Fill(Color.White, Color.FromArgb(255, 255, 166), 45.0F);
zgc.AxisChange();
zgc.Refresh();
}
}
public void CreateLine(ZedGraphControl zgc, string epc, PointPairList list3, PointPairList list1, PointPairList list2, PointPairList list4, PointPairList list5, double up, double uptemp, double down, double downtemp)
{
GraphPane myPane = zgc.GraphPane;
list3.Clear();
myPane.CurveList.Clear();
myPane.Title.Text = dataGridView1.Rows[0].Cells[1].Value.ToString().Trim() + "的温度变化曲线图";
string sqlstr = "select [温度值],[时间] from [温度表] where EPC码='" + epc + "'order by [时间] asc";
DataTable Dt = com.dt(sqlstr);
if (Dt.Rows.Count <= 0)
MessageBox.Show("无温度记录!", "提示");
else
{
for (int i = 0; i < Dt.Rows.Count; i++)
{
string Str = Dt.Rows[i]["时间"].ToString().Replace(".", "/");
Str = Str.Replace("-", "/");
Str = Str.Replace(" ", "/");
string[] array = Str.Split('/');
string str = "";
for (Int32 h = 0; h <= array.Length - 2; h++)
{
str = str + array[h];
}
double x3 = Convert.ToDouble(str);
double y1, y2, y4, y5;
y1 = up;
y2 = uptemp;
double y3 = Convert.ToDouble(Dt.Rows[i]["温度值"].ToString());
y4 = down;
y5 = downtemp;
list1.Add(x3, y1);
list2.Add(x3, y2);
list3.Add(x3, y3);
list4.Add(x3, y4);
list5.Add(x3, y5);
}
//将时间作为X轴的标尺
string[] xLabels = new string[Dt.Rows.Count];
for (int i = 0; i < Dt.Rows.Count; i++)
xLabels[i] = Dt.Rows[i]["时间"].ToString().Trim();
myPane.XAxis.Type = AxisType.Text;
myPane.XAxis.Scale.TextLabels = xLabels;
// 创建每个折线
LineItem myCurve1 = myPane.AddCurve("上限", list1, Color.Red);
LineItem myCurve2 = myPane.AddCurve("上预警值", list2, Color.Purple);
LineItem myCurve3 = myPane.AddCurve("温度值", list3, Color.Blue);
LineItem myCurve4 = myPane.AddCurve("下预警值", list4, Color.GreenYellow);
LineItem myCurve5 = myPane.AddCurve("下限", list5, Color.Green);
zedGraphControl1.AxisChange();
// 设置图标的颜色和渐变色
myPane.Chart.Fill = new Fill(Color.White, Color.FromArgb(255, 255, 166), 45.0F);
zgc.AxisChange();
zgc.Refresh();
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
问题没说清楚。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询