【TeeChart .NET教程】(八)ADO.NET数据库访问

【下载TeeChart.Net最新版本】

(一)简介

(二)在设计时连接到ADO.NET

2.1 DataAdapter [VS2003]

在设计时,将Series连接到ADO.NET数据源所需的步骤是:

  1. 从VS.NET ToolBox的Data选项卡中,将OleDbDataAdapter拖到WinForm上,并在其上添加TeeChart for .Net对象。
  2. 单击“Data Adapter Configuration Wizard(数据适配器配置向导)”上的“Next”,然后在下一页上单击“New Connection…(新建连接…)”按钮。
  3. 现在单击新窗口的“Provider”选项卡,然后选择“Microsoft Jet OLE DB Provider”,如下图所示: teechart
  4. 现在单击同一窗口的“Connection”选项卡,然后从TeeChart for .Net根目录下的Sample Data文件夹中选择TeeChart.mdb文件: teechart
  5. 单击“Test Connection”按钮以测试连接,然后单击同一窗口的“OK”按钮。
  6. 单击Data Adapter Configuration Wizard窗口的“Next”按钮,从出现的窗口中选择“Use SQL Statements”,然后再次单击“Next”按钮。
  7. 单击“Query Builder”按钮并添加“Employee”表。关闭“Add Table”窗口并选择“*(All Columns)”复选框: teechart
  8. 确定此窗口,单击“Next”,然后单击“Finish”。
  9. 打开TeeChart Editor,添加BarSeries并导航到Series选项卡的DataSource选项卡。
  10. 从ComboBox中选择“Database”,从DataSet ComboBox中选择oleDbDataAdapter1 [System.Data.OleDb.OleDbDataAdapter]。
  11. 将标签设置为“LASTNAME”,将Y设置为“SALARY”,如下图所示: teechart
  12. 单击Apply按钮并运行表单,应该有以下内容: teechart
2.2 BindingSource [VS2005,VS2008,VS2010,VS2012,VS2013]

在设计时,将Series连接到ADO.NET数据源所需的步骤如下:

  1. 从VS.NET ToolBox的Data选项卡中,将BindingSource拖到一个带有TeeChart for .Net对象的WinForm上。 teechart
  2. 转到Data选项卡,然后选择“Show Data Source” teechart
  3. 右键单击“Data Source”工具箱,然后选择“Add New Data Source”。
  4. 选择Database,选择/创建连接字符串,使用Microsoft Access DataBase File(OLE DB),单击continue: teechart teechart 注意:单击“Test Connection”按钮以检查数据源的连接。
  5. 最后在Browse中选择要连接的表: teechart
  6. 从“data source”工具箱中选择要用作数据源的表,然后将其拖到表单中。 teechart
  7. 打开TeeChart Editor,添加BarSeries并导航到Series选项卡的DataSource选项卡。
  8. 从ComboBox中选择“Database”,从DataSet ComboBox中选择bindingSource1。
  9. 将标签设置为“LASTNAME”,将Y设置为“SALARY”,如下图所示: teechart
  10. 单击Apply按钮并运行表单,有以下内容: teechart
2.3 单记录

teechart

(三)在运行时连接到ADO.NET

3.1 [VERSION .NET 2003] DataAdapter

[C#.Net]

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 FilesSteema SoftwareTeeChart for .NET v3Sample dataTeeChart.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 TryEnd SubPrivate Sub OpenConnWithJet40(ByRef MasterDataSet As DataSet)            Dim TestConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:Program FilesSteema SoftwareTeeChart for .NET v3Sample dataTeeChart.mdb;")            TestConn.Open()            Dim StrCom As String = "SELECT * FROM Employee"            Dim MyCommand As New OleDbDataAdapter(StrCom, TestConn)            MyCommand.Fill(MasterDataSet, "Employee")            TestConn.Close()        End SubEnd Class
3.2 [VERSION .NET 2005] DataAdapter

[C#.Net]

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 FilesSteema SoftwareTeeChart for .NET v3Sample dataTeeChart.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 SubEnd Class

如果数据库值已更改,并且想要“refresh”连接并再次检索值,则应执行以下操作:

TChart1.Series(0).CheckDataSource

“CheckDataSource”方法将强制Series再次检索所有记录,所有系列都有“XValues.ValueSource”属性,此属性仅用于XY图表(为每个点设置X坐标时)。

3.3 单记录

(假设一个名为sourceTableSet的DataSet,带有table: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组件导航数据库表并更新图表。更改表记录后,使用CheckDatasource更新图表。例:

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 WebForm上的TeeChart WebChart通过ASP.NET连接数据源,其方式几乎与数据源可以连接到WinForm上的TeeChart组件的方式相同。

标签:图表数据库teechart

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年7月4日
下一篇 2018年7月4日

相关推荐

发表回复

登录后才能评论