Btrieve ADO.NET Provider

Read, Write, and Update Btrieve from .NET Apps.

Easily connect Pervasive SQL (Btrieve) with BI, ETL, Reporting, and Custom Apps.

  download   buy now

Other Database Technologies

The Btrieve ADO.NET Data Provider enables user to easily connect to Btrieve data from .NET applications. Rapidly create and deploy powerful .NET applications that integrate with Pervasive SQL (Btrieve) databases.


  • Fully compatible with the PSQL v13 Btrieve API
  • Connect to live Pervasive SQL (Btrieve) data, for real-time data access
  • Full support for data aggregation and complex JOINs in SQL queries
  • Seamless integration with leading BI, reporting, and ETL tools and with custom applications


  • DataBind to Btrieve using standard Visual Studio wizards.
  • Comprehensive support for CRUD (Create, Read, Update, and Delete).
  • Supports ADO.NET Entity Framework (EF 5 & 6), LINQ to Datasets, etc.
  • Full Unicode support for data, parameter, & metadata.
  • Support for 32-bit and 64-bit operating systems.
  • Supports .NET Framework 4.0+ and .NET Standard 2.0 (.NET Core 2.1+, .NET 6.0).


225+ ADO.NET Drivers For Real-Time BI & Reporting.

Where can I use the Btrieve ADO.NET Provider?

ADO.NET Access to Pervasive SQL (Btrieve)

Full-featured and consistent SQL access to any supported data source through ADO.NET

  • Fully-managed .NET

    100% fully managed ADO.NET libraries supporting .NET Standard, .NET Core 2.0, & Xamarin.

  • Developer Friendly

    Seamless integration with all versions of Visual Studio.

  • Powerful ADO.NET Features

    Including support for ADO.NET Entity Framework (EF 5 & 6), ADO.NET 2.0, LINQ to Datasets, etc.

  • Replication and Caching

    Our replication and caching commands make it easy to copy data to local and cloud data stores such as Oracle, SQL Server, Google Cloud SQL, etc. The replication commands include many features that allow for intelligent incremental updates to cached data.

  • String, Date, Numeric SQL Functions

    The driver includes a library of 50 plus functions that can manipulate column values into the desired result. Popular examples include Regex, JSON, and XML processing functions.

  • Collaborative Query Processing

    Our drivers enhance the data source's capabilities by additional client side processing, when needed, to enable analytic summaries of data such as SUM, AVG, MAX, MIN, etc.

  • Easily Customizable and Configurable

    The data model exposed by our ADO.NET Providers can easily be customized to add or remove tables/columns, change data types, etc. without requiring a new build. These customizations are supported at runtime using human-readable schema files that are easy to edit.

  • Secure Connectivity

    Includes standard Enterprise-class security features such as TLS/ SSL data encryption for all client-server communications.

Standard ADO.NET Access to Btrieve

The Btrieve ADO.NET Provider offers the most natural way to access Btrieve data from any .NET application. Simply use Btrieve Data Provider objects to connect and access data just as you would access any traditional database. You will be able to use the Btrieve Data Provider through Visual Studio Server Explorer, in code through familiar classes, and in data controls like DataGridView, GridView, DataSet, etc.

The CData ADO.NET Provider for Btrieve hides the complexity of accessing data and provides additional powerful security features, smart caching, batching, socket management, and more.

Working with DataAdapters, DataSets, DataTables, etc.

The Btrieve Data Provider has the same ADO.NET architecture as the native .NET data providers for SQL Server and OLEDB, including: BtrieveConnection, BtrieveCommand, BtrieveDataAdapter, BtrieveDataReader, BtrieveDataSource, BtrieveParameter, etc. Because of this you can now access Btrieve data in an easy, familiar way.

For example:

using (BtrieveConnection conn = new BtrieveConnection("...")) {
	string select = "SELECT * FROM PervasiveTable";
	BtrieveCommand cmd = new BtrieveCommand(select, conn);
	BtrieveDataAdapter adapter = new BtrieveDataAdapter(cmd);
	using (adapter) {
		DataTable table = new DataTable();

More Than Read-Only: Full Update/CRUD Support

Btrieve Data Provider goes beyond read-only functionality to deliver full support for Create, Read, Update, and Delete operations (CRUD). Your end-users can interact with the data presented by the Btrieve Data Provider as easily as interacting with a database table.

using (BtrieveConnection connection = new BtrieveConnection(connectionString)) {
	BtrieveDataAdapter dataAdapter = new BtrieveDataAdapter(
	"SELECT Id, Where FROM PervasiveTable", connection);
	dataAdapter.UpdateCommand = new BtrieveCommand(
		"UPDATE PervasiveTable SET Where = @Where " +
		"WHERE Id = @ID", connection);

	dataAdapter.UpdateCommand.Parameters.AddWithValue("@Where", "Where");
	dataAdapter.UpdateCommand.Parameters.AddWithValue("@Id", "80000173-1387137645");

	DataTable PervasiveTableTable = new DataTable();

	DataRow firstrow = PervasiveTableTable.Rows[0];
	firstrow["Where"] = "New Location";


ADO.NET Provider Performance

With traditional approaches to remote access, performance bottlenecks can spell disaster for applications. Regardless if an application is created for internal use, a commercial project, web, or mobile application, slow performance can rapidly lead to project failure. Accessing data from any remote source has the potential to create these problems. Common issues include:

  1. Network Connections - Slow network connections and latency issues are common in mobile applications.
  2. Service Delays - Delays due to service interruptions, resulting in server hardware or software updates.
  3. Large Data - Intentional or unintentional requests for large amounts of data.
  4. Disconnects - Complete loss of network connectivity.

The CData ADO.NET Provider for Btrieve solves many of these issues with support for replication queries that can be used to sync data to local databases, greatly improving the performance and dramatically reduce application bottlenecks.

More information about ADO.NET Provider performance capabilities are available in the included documentation.

Visual Studio Integration & Server Explorer

Working with the new Btrieve ADO.NET Provider is easy. As a fully-managed .NET Data Provider, the Btrieve Data Provider integrates seamlessly with the Visual Studio development environment as well as any .NET application.

As an ADO.NET Data Provider, Btrieve ADO.NET Provider can be used to access and explore Pervasive SQL (Btrieve) data directly from the Visual Studio Server Explorer.

It's easy. As a standard ADO.NET adapter, developers can connect the Server Explorer to Btrieve ADO.NET Provider just like connecting to any standard database.

  • Add a new Data Connection from the Server Explorer and select the Pervasive SQL (Btrieve) Data Source

  • Configure the basic connection properties to access your Pervasive SQL (Btrieve) account data.

Explore all of the data available! Btrieve ADO.NET Provider makes it easy to access live Pervasive SQL (Btrieve) data from Visual Studio.

  • After configuring the connection, explore the feeds, views, and services provided by the Pervasive SQL (Btrieve) Data Source.
  • These constructs return live Pervasive SQL (Btrieve) data that developers can work with directly from within Visual Studio!

Developer Integration: Databind to Btrieve

Connecting Web, Desktop, and Mobile .NET applications with Pervasive SQL (Btrieve) is just like working with SQL Server. It is even possible to integrate Btrieve ADO.NET Provider into applications without writing code.

Developers are free to access the Btrieve ADO.NET Provider in whatever way they like best. Either visually through the Visual Studio Winforms or Webforms designers, or directly through code.

  • Developers can connect the Pervasive SQL (Btrieve) Data Source directly to form components by configuring the object's smart tags.

  • Add a new Data Connection from the Server Explorer and select the Pervasive SQL (Btrieve) Data Source. Then, select the feed, view, or services you would like to connect the object to.

Done! It's just like connecting to SQL Server.

  • Once the object is bound to the data source, applications can easily interact with Pervasive SQL (Btrieve) data with full read/write (CRUD) support.