dotConnect for FreshBooks Documentation
In This Topic
    Retrieving Data
    In This Topic

    Introduction

    This tutorial describes how to use FreshBooksCommand, FreshBooksDataReader, and FreshBooksDataAdapter components.

    Requirements

    This tutorial supposes that you know how to connect to server.

    Note that if you do not use design-time (specifically, if you do not place on a designer FreshBooksConnection component from toolbox), you have to embed license information manually. This is described in the Licensing topic.

    General Information

    The main function of any database application is establishing a connection to a data source and working with data contained in it. ADO.NET data providers serve as a bridge between an application and a data source, and allow you to execute commands as well as to retrieve data by using a DataReader or a DataAdapter. Updating data involves using the Command and DataAdapter objects.

    Retrieving Data using FreshBooksCommand and FreshBooksDataReader

    In this sample we will use FreshBooksCommand and FreshBooksDataReader to retrieve data. FreshBooksDataReader allows retrieving data in pages. While you read data from it, it automatically queries next pages from FreshBooks. FreshBooksDataReader offers higher performance than FreshBooksDataAdapter, especially when you query a lot of data. For more information, refer to the description of these classes in our documentation.

    using Devart.Data.FreshBooks;
    ...
    class Program
    {
        static void Main(string[] args) {
    
            const string connectionString = "Server=newcompany1111.freshbooks.com;Authentication Token=d2edadb1d00dfb2ff1209f0409952e70;";
            const string sql = "SELECT Name, Billable FROM Task";
    
            using (FreshBooksConnection connection = new FreshBooksConnection(connectionString)) {
    
                connection.Open();
                using (FreshBooksCommand command = connection.CreateCommand()) {
    
                    command.CommandText = sql;
                    using (FreshBooksDataReader reader = command.ExecuteReader()) {
    
                        while (reader.Read()) {
    
                            Console.WriteLine("{0}\t{1}", reader.GetValue(0), reader.GetValue(1));
                        }
                    }
                }
            }
            Console.ReadKey();
        }
    
    }
    
    
    Imports Devart.Data.FreshBooks
    ...
    Module Module1
    
        Sub Main()
    
            Const connectionString As String = "Server=newcompany1111.freshbooks.com;Authentication Token=d2edadb1d00dfb2ff1209f0409952e70;"
            Const sql As String = "SELECT Name, Billable FROM Task"
    
            Using connection As New FreshBooksConnection(connectionString)
    
                connection.Open()
                Using command As FreshBooksCommand = connection.CreateCommand()
    
                    command.CommandText = sql
                    Using reader As FreshBooksDataReader = command.ExecuteReader()
    
                        While reader.Read()
    
                            Console.WriteLine(reader.GetValue(0) & vbTab & reader.GetValue(1))
                        End While
                    End Using
                End Using
            End Using
            Console.ReadKey()
        End Sub
    
    End Module
    
    
    

    Retrieving Data using FreshBooksDataAdapter

    Applicable only for projects targeting full .NET Framework.

    In this sample we will use the FreshBooksDataAdapter component. It retrieves data when you call its Fill method. Note that this method needs to retrieve all the queried data from FreshBooks, and it can take some time.

    Here is a small sample that demonstrates usage of FreshBooksDataAdapter to retrieve data.

    
        static void Main(string[] args) {
    
            const string connectionString = "Server=newcompany1111.freshbooks.com;Authentication Token=d2edadb1d00dfb2ff1209f0409952e70;";
            const string sql = "SELECT Name, Billable FROM Task";
    
            using (FreshBooksConnection connection = new FreshBooksConnection(connectionString)) {
    
                connection.Open();
                DataTable table = new DataTable("Task");
    
                using (FreshBooksCommand command = connection.CreateCommand()) {
    
                    command.CommandText = sql;
                    using (FreshBooksDataAdapter adapter = new FreshBooksDataAdapter(command)) {
                        adapter.Fill(table);
                    }
                }
    
                foreach (DataRow row in table.Rows) {
                    Console.WriteLine("{0}\t{1}", row[0], row[1]);
                }
            }
            Console.ReadKey();
        }
    
    
    
    
        Sub Main()
    
            Const connectionString As String = "Server=newcompany1111.freshbooks.com;Authentication Token=d2edadb1d00dfb2ff1209f0409952e70;"
            Const sql As String = "SELECT Name, Billable FROM Task"
    
            Using connection As New FreshBooksConnection(connectionString)
    
                connection.Open()
                Dim table As New DataTable("Task")
    
                Using command As FreshBooksCommand = connection.CreateCommand()
    
                    command.CommandText = sql
                    Using adapter As New FreshBooksDataAdapter(command)
                        adapter.Fill(table)
                    End Using
                End Using
    
                For Each row As DataRow In table.Rows
                    Console.WriteLine(row(0) & vbTab & row(1))
                Next
            End Using
            Console.ReadKey()
        End Sub
    
    
    

    Additional Information

    This tutorial describes only basic ways of working with data. For example, you can take advantage of using Entity Framework ORM technology which is intended for converting data between incompatible type systems in different data sources and object-oriented programming languages. This technology allow you to decrease the amount of code and maintenance required for data-oriented applications. For more information, please refer to Entity Framework section.

    See Also

    Entity Framework  | Updating Data