原創(chuàng)|使用教程|編輯:王香|2018-08-07 16:15:05.000|閱讀 620 次
概述:本文詳細(xì)介紹了如何在TeeChart中使用ADO.NET數(shù)據(jù)庫訪問
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
【下載TeeChart.Net最新版本】
將TeeChart連接到ADO.NET數(shù)據(jù)庫可以在設(shè)計時使用TeeChart編輯器完成,并在運行時使用幾行代碼完成,任何Series都可以使用TeeChart Editor連接到ADO.NET表或查詢。每個系列都可以使用相同或不同的ADO.NET數(shù)據(jù)庫連接到相同或不同的表或查詢,此設(shè)計為用戶提供了如何將圖表連接到數(shù)據(jù)庫的完全靈活性,因為用戶不僅限于一個數(shù)據(jù)庫,也不僅限于一個表或查詢。在設(shè)計時也會檢索數(shù)據(jù),因此用戶可以在開發(fā)期間查看實際數(shù)據(jù)。
在設(shè)計時,將Series連接到ADO.NET數(shù)據(jù)源所需的步驟是:





在設(shè)計時,將Series連接到ADO.NET數(shù)據(jù)源所需的步驟如下:


 
  注意:單擊“Test Connection”按鈕以檢查數(shù)據(jù)源的連接。
 注意:單擊“Test Connection”按鈕以檢查數(shù)據(jù)源的連接。 



單記錄圖表允許在TeeChart上顯示來自單個數(shù)據(jù)庫記錄的所有或一些記錄。它對數(shù)據(jù)庫視圖或表有用,例如,每年的銷售數(shù)據(jù)存儲為單獨的月份列,“JAN”,“FEB”,“MAR”等。并逐步顯示記錄顯示連續(xù)幾年的月銷售額,單記錄圖表支持?jǐn)?shù)據(jù)集,表格和數(shù)據(jù)視圖,使用圖表編輯器選擇單個記錄作為圖表系列的數(shù)據(jù)源類型。

連接單記錄數(shù)據(jù)所需的大多數(shù)步驟都是通過圖表編輯器實現(xiàn)的,要導(dǎo)航數(shù)據(jù)源并相應(yīng)地更新圖表,需要使用Windows.Form的CurrencyManager編寫幾行代碼。
上述設(shè)計時步驟可以用幾行代碼以編程方式重現(xiàn)。這使用戶可以更自由地控制數(shù)據(jù)庫操作。每個Series都有“DataSource”屬性,它確定數(shù)據(jù)庫值的來源(表或查詢),以及“YValues.DataMember”和“LabelMember”屬性,以指定我們要繪制的字段。將新的TeeChart for .Net對象拖到新項目和新表單上。
[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 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
[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 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
如果數(shù)據(jù)庫值已更改,并且想要“refresh”連接并再次檢索值,則應(yīng)執(zhí)行以下操作:
TChart1.Series(0).CheckDataSource
“CheckDataSource”方法將強(qiáng)制Series再次檢索所有記錄,所有系列都有“XValues.ValueSource”屬性,此屬性僅用于XY圖表(為每個點設(shè)置X坐標(biāo)時)。
連接使用圖表編輯器將在表格的初始化中創(chuàng)建以下代碼,可以在運行時使用類似的代碼來創(chuàng)建和連接新的SingleRecord數(shù)據(jù)源。
(假設(shè)一個名為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;
表格導(dǎo)航 TeeChart的SingleRecord使用CurrencyManager組件導(dǎo)航數(shù)據(jù)庫表并更新圖表。更改表記錄后,使用CheckDatasource更新圖表。例:
private CurrencyManager myCurrencyManager; 
 
public void ConnectChartToTable() 
{ 
     myCurrencyManager = (CurrencyManager)this.BindingContext[sourceTable]; 
     singleRecordSource1.RecordCurrency=myCurrencyManager; 
     tChart1[0].CheckDataSource(); 
}
可以使用CurrencyManager導(dǎo)航表(圖表)
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 WebForm上的TeeChart WebChart通過ASP.NET連接數(shù)據(jù)源,其方式幾乎與數(shù)據(jù)源可以連接到WinForm上的TeeChart組件的方式相同。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn