TeeChart for .NET图表控件如何ADO数据库访问?

TeeChart for .NET是优秀的 4.0 WinForm 图表控件,官方独家授权汉化,集功能全面、性能稳定版、优惠等优势。NET 的 TeeChart for .NET 中文承诺让您在使用和学习上没有语言障碍,最少可以节省30%的开发时间。

简介 

将TeeChart控件连接到ADO.NET数据库可以在设计时使用TeeChart编辑器完成,也可以在运行时使用几行代码。

任何系列都可以使用TeeChart编辑器连接到ADO.NET表或查询。每个系列都可以使用相同或不同的ADO.NET数据库连接到相同或不同的表或查询。

这种设计使你在如何将图表连接到数据库方面具有完全的灵活性,因为你不会被限制在只有一个数据库或只有一个表或查询。

数据也是在设计时检索的,所以你在开发时可以看到实际的数据。

在设计时连接到ADO.NET 

DataAdapter [VS2003] 
在设计时,将一个系列连接到一个ADO.NET数据源的必要步骤是。

1. 从VS.NET工具箱的数据选项卡中,将一个OleDbDataAdapter拖到一个WinForm上,上面有一个TeeChart for .Net对象。
2. 在数据适配器配置向导中点击 "下一步",在下一页中点击 "新连接... "按钮。
3. 现在点击新窗口的 "提供者 "标签,选择 "Microsoft Jet OLE DB提供者",如下图所示。

 

TeeChart for .NET图表控件教程:ADO数据库访问

4. 现在点击同一窗口的 "连接 "标签,从TeeChart for .Net根目录下的样本数据文件夹中选择TeeChart.mdb文件。

 

TeeChart for .NET图表控件教程:ADO数据库访问

5. 点击 "测试连接 "按钮来测试连接,然后点击同一窗口的 "确定 "按钮。

 

6. 现在点击数据适配器配置向导窗口的 "下一步 "按钮,在出现的窗口中选择 "使用SQL语句 "并再次点击 "下一步 "按钮。

7. 现在点击 "查询生成器 "按钮,添加 "雇员 "表。关闭 "添加表 "窗口,选择 "*(所有列)"复选框。

TeeChart for .NET图表控件教程:ADO数据库访问

8. 现在确定这个窗口,点击 "下一步",然后点击 "完成"。

9. 现在打开TeeChart编辑器,添加一个BarSeries,并导航到Series标签的DataSource标签。
10. 从组合框中选择 "数据库",从数据集组合框中选择oleDbDataAdapter1 [System.Data.OleDb.OleDbDataAdapter] 。  
11. 设置Labels为 "LASTNAME",Y为 "SALARY",如下图所示。

TeeChart for .NET图表控件教程:ADO数据库访问

12. 现在点击应用按钮并运行表单;你现在应该有如下的东西。

 

TeeChart for .NET图表控件教程:ADO数据库访问

BindingSource [VS2005,VS2008,VS2010,VS2012,VS2013] 

在设计时,将一个系列连接到一个ADO.NET数据源的必要步骤是。
1. 从VS.NET工具箱的数据选项卡中,将一个BindingSource拖到一个带有TeeChart for .Net对象的WinForm上。

TeeChart for .NET图表控件教程:ADO数据库访问

2. 进入数据标签,选择 "显示数据源"

TeeChart for .NET图表控件教程:ADO数据库访问

3. 在数据源工具箱上点击右键,选择 "添加新数据源"。

 

4. 选择数据库,选择/创建连接字符串,在我们的例子中,我们使用Microsoft Access DataBase File(OLE DB),点击继续。

TeeChart for .NET图表控件教程:ADO数据库访问

TeeChart for .NET图表控件教程:ADO数据库访问

注意:点击测试连接按钮,检查你的数据源的连接情况。
5. 最后在浏览中选择你要连接的表。

TeeChart for .NET图表控件教程:ADO数据库访问

6. 从数据源工具箱中选择你想用作数据源的表,并把它拖到你的表单中。

 

 

TeeChart for .NET图表控件教程:ADO数据库访问

7. 现在打开TeeChart编辑器,加入一个BarSeries,并导航到Series标签的DataSource标签。
8. 从组合框中选择 "数据库",从数据集组合框中选择bindingSource1。
9.  设置标签为 "LASTNAME",Y为 "SALARY",如下图所示。

TeeChart for .NET图表控件教程:ADO数据库访问

10. 现在点击 "应用 "按钮并运行表单;你现在应该有如下内容。

 

 

TeeChart for .NET图表控件教程:ADO数据库访问

单一记录 

 

单一记录图表允许在TeeChart上显示单一数据库记录的全部或部分记录。它可能对数据库视图或表格很有用,例如,每年的销售数字被存储为单独的月份列,"JAN"、"FEB"、"MAR"......等,通过记录显示连续几年的月度销售。

单一记录图表法支持数据集、表格和数据视图。使用图表编辑器选择单记录作为图表系列的数据源类型。

 

TeeChart for .NET图表控件教程:ADO数据库访问

连接到单一记录数据所需的大部分步骤都可以通过图表编辑器实现。为了导航数据源并相应地更新图表,你需要使用Windows.Form的CurrencyManager编写几行代码。请看编码步骤部分的使用示范。

 

在运行时连接到ADO.NET 

[版本 .net 2003] 
DataAdapter 
上述设计时的步骤可以通过几行代码以编程方式重现。这给了你更多的自由和对数据库操作的控制。

每个系列都有 "DataSource "属性,它决定了数据库值的来源(表或查询),还有 "YValues.DataMember "和 "LabelMember "属性,用于指定我们要绘制的字段。
把一个新的TeeChart for .Net对象拖到一个新的项目和一个新的表格上。

[C#] 
using System.Data; 
using System.Data.OleDb; 
using System.Security; 
using System.Security.Permissions; 
 
private void Form1_Load(object sender, System.EventArgs e) { 
            DataSet masterDataSet = new DataSet(); 
            Bar bar1 = new Bar(tChart1.Chart); 
            try 
            { 
                OpenConnWithJet40(ref masterDataSet); 
                DataTable employeeTable = masterDataSet.Tables["EMPLOYEE"]; 
                bar1.YValues.DataMember = employeeTable.Columns["SALARY"].ToString(); 
                bar1.LabelMember = employeeTable.Columns["LASTNAME"].ToString(); 
                bar1.DataSource = employeeTable; 
            } 
            catch (SecurityException) 
            { 
                MessageBox.Show("The calling method has not been granted sufficient permission to access the Microsoft Jet 4.0 OLE DB Provider."); 
            } 
} 
        
 
 [OleDbPermission(SecurityAction.Demand, Provider = "Microsoft.Jet.OLEDB.4.0")] 
  
private void OpenConnWithJet40(ref DataSet masterDataSet) { 
             
            OleDbConnection testConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=C:\Program Files\Steema Software\TeeChart for .NET v3\Sample data\TeeChart.mdb;");           
            testConn.Open(); 
            string strCom = "SELECT * FROM Employee"; 
            OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom,testConn); 
            myCommand.Fill(masterDataSet, "Employee"); 
            testConn.Close(); 
 
        } 
 
[VB.Net] 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
            Dim MasterDataSet As New DataSet() 
            Dim Bar1 As New Steema.TeeChart.Styles.Bar(TChart1.Chart) 
            Try 
                OpenConnWithJet40(MasterDataSet) 
                Dim employeeTable As DataTable = MasterDataSet.Tables("Employee") 
                Bar1.YValues.DataMember = employeeTable.Columns("SALARY").ToString() 
                Bar1.LabelMember = employeeTable.Columns("LASTNAME").ToString() 
                Bar1.DataSource = employeeTable 
            Catch ex As Exception 
                MessageBox.Show("Microsoft Jet 4.0 OLE DB Provider problem: " & ex.Message) 
            End Try 
End Sub 
 
Private Sub OpenConnWithJet40(ByRef MasterDataSet As DataSet) 
            Dim TestConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Program Files\Steema Software\TeeChart for .NET v3\Sample data\TeeChart.mdb;") 
            TestConn.Open() 
 
            Dim StrCom As String = "SELECT * FROM Employee" 
            Dim MyCommand As New OleDbDataAdapter(StrCom, TestConn) 
            MyCommand.Fill(MasterDataSet, "Employee") 
            TestConn.Close() 
        End Sub 
End Class

在.NET 2005版本中,对2005版本的变化不大
[version .net 2005] 
DataAdapter 

[C#] 
using System.Data; 
using System.Data.OleDb; 
using System.Security; 
using System.Security.Permissions; 
private void Form1_Load(object sender, EventArgs e) 
 { 
            //string ConnString = SqlDataSource1.ConnectionString;       
            string sQuery = "select * from Employee"; 
           
            //SqlConnection myConnection = new SqlConnection(ConnString);             
            string myConnString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\Program Files\\Steema Software\\TeeChart for .NET v3\\Sample data\\TeeChart.mdb;Uid=Admin;Pwd=;"; 
            System.Data.Odbc.OdbcConnection myConnection = new System.Data.Odbc.OdbcConnection(myConnString); 
           
            //SqlCommand myCommand = new SqlCommand(sQuery, myConnection); 
            System.Data.Odbc.OdbcCommand myCommand = new System.Data.Odbc.OdbcCommand(sQuery, myConnection); 
            myConnection.Open(); 
           
            //SqlDataReader myReader = myCommand.ExecuteReader(); 
            System.Data.Odbc.OdbcDataReader myReader = myCommand.ExecuteReader(); 
 
            int XColumn = myReader.GetOrdinal("ID"); 
            int YColumn = myReader.GetOrdinal("SALARY"); 
            int LabelColumn = myReader.GetOrdinal("LASTNAME"); 
 
            Steema.TeeChart.Styles.Bar bar1 = new Steema.TeeChart.Styles.Bar(tChart1.Chart); 
 
            while (myReader.Read()) 
            { 
                bar1.Add(Convert.ToInt32(myReader[XColumn]), Convert.ToDouble(myReader[YColumn]), Convert.ToString(myReader[LabelColumn])); 
            } 
 
            myReader.Close(); 
            myConnection.Close(); 
} 

[VB.Net] 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim MasterDataSet As New DataSet() 
        Dim Bar1 As New Steema.TeeChart.Styles.Bar(TChart1.Chart) 
        Try 
            OpenConnWithJet40(MasterDataSet) 
            Dim employeeTable As DataTable = MasterDataSet.Tables("EMPLOYEE") 
            Bar1.YValues.DataMember = employeeTable.Columns("SALARY").ToString() 
            Bar1.LabelMember = employeeTable.Columns("LASTNAME").ToString() 
            Bar1.DataSource = employeeTable 
        Catch ex As Exception 
            MessageBox.Show("Microsoft Jet 4.0 OLE DB Provider problem: " & ex.Message) 
        End Try 
 End Sub 
 
 Private Sub OpenConnWithJet40(ByRef MasterDataSet As DataSet) 
        
        Dim TestConn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Program Files\Steema Software\TeeChart for .NET v3\Sample data\TeeChart.mdb;") 
        TestConn.Open() 
        Dim StrCom As String = "SELECT * FROM Employee" 
        Dim MyCommand As New OleDb.OleDbDataAdapter(StrCom, TestConn) 
        MyCommand.Fill(MasterDataSet, "Employee") 
        TestConn.Close() 
    End Sub 
 
End Class

如果数据库的值发生了变化,你想 "刷新 "连接并再次检索这些值,你应该这样做。
TChart1.Series(0).CheckDataSource 
CheckDataSource "方法将强制该系列再次检索所有记录。
所有的系列也都有 "XValues.ValueSource "属性。这个属性只用于XY图表(当你为每个点有一个X坐标时)。

 

单一记录 

与表的连接 

使用图表编辑器将在表格的初始化中创建以下代码。类似的代码可以在运行时用于创建和连接新的SingleRecord数据源。
假设有一个名为sourceTableSet的数据集,表为:sourceTable)。

this.singleRecordSource1 = new Steema.TeeChart.Data.SingleRecordSource(); 
this.sourceTableSet.DataSetName = "NewDataSet"; 
this.sourceTableSet.Tables.AddRange(new System.Data.DataTable[] {this.sourceTable}); 
this.singleRecordSource1.DataSource = this.sourceTableSet; 
this.singleRecordSource1.ValueMembers = new string[] { 
                                                             "JAN", 
                                                             "FEB", 
                                                             "MAR"};

this.bar1 = new Steema.TeeChart.Styles.Bar(); 
this.bar1.DataSource = this.singleRecordSource1; 

表格导航 

 

TeeChart的SingleRecord使用CurrencyManager组件来导航数据库表并更新Chart。在改变表的记录后,使用CheckDatasource来更新Chart。

例子 

private CurrencyManager myCurrencyManager; 
 
public void ConnectChartToTable() 
{ 
     myCurrencyManager = (CurrencyManager)this.BindingContext[sourceTable]; 
     singleRecordSource1.RecordCurrency=myCurrencyManager; 
     tChart1[0].CheckDataSource(); 
}

该表(和图表)可以通过使用CurrencyManager来导航。

    private void MovePrevious() 
    { 
      if (myCurrencyManager.Position>0) 
      { 
        myCurrencyManager.Position=myCurrencyManager.Position+1; 
        tChart1[0].CheckDataSource(); 
      } 
    } 
 
    private void MoveNext() 
    { 
      if (myCurrencyManager.Position<myCurrencyManager.Count) 
      { 
        myCurrencyManager.Position=myCurrencyManager.Position+1; 
        tChart1[0].CheckDataSource(); 
      } 
    }

在ASP.NET中使用ADO.NET 

 

你可以通过ASP.NET连接数据源,在ASP.NET WebForm上使用TeeChart WebChart,其方式与数据源连接到WinForm上的TeeChart组件的方式几乎相同。关于ASP.NET的更多信息,请参见互联网应用教程。

如果你看到了可爱的动物群,欢迎加入展示区QQ:740060302

posted @ 2021-07-08 16:04  roffey  阅读(90)  评论(0编辑  收藏  举报