Snowflake ADO.NET Provider

Powerful Snowflake Data Integration

  • DataBind to Snowflake data using standard Visual Studio wizards.
  • Comprehensive support for CRUD (Create, Read, Update, and Delete) operations.
  • An easy-to-use interface for working with data from Snowflake Enterprise Data Warehouse.

Cross-platform ADO.NET Providers supporting .NET Standard, .NET Core, & Xamarin!

  download beta

 Included in ADO.NET Subscriptions: 125+ ADO.NET Data Providers.


The CData ADO.NET Provider for Snowflake gives developers the power to easily connect .NET applications to Snowflake data. The Snowflake Data Provider makes this Snowflake data look like SQL tables in your applications. With the CData ADO.NET Provider for Snowflake developers can simply DataBind to data, just like using SQL Server.

ADO.NET Provider Overview

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

Using the Snowflake Data Provider

The Snowflake Data Provider wraps the complexity of accessing Snowflake services in an easy-to-integrate, fully managed ADO.NET Data Provider. Applications then access Snowflake through the Snowflake Data Provider with simple Transact-SQL.

The CData ADO.NET Provider for Snowflake 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 Snowflake Data Provider has the same ADO.NET architecture as the native .NET data providers for SQL Server and OLEDB, including: SnowflakeConnection, SnowflakeCommand, SnowflakeDataAdapter, SnowflakeDataReader, SnowflakeDataSource, SnowflakeParameter, etc. Because of this you can now access Snowflake data in an easy, familiar way.

For example:

using (SnowflakeConnection conn = new SnowflakeConnection("...")) {
	string select = "SELECT * FROM Data";
	SnowflakeCommand cmd = new SnowflakeCommand(select, conn);
	SnowflakeDataAdapter adapter = new SnowflakeDataAdapter(cmd);
	using (adapter) {
		DataTable table = new DataTable();

More Than Read-Only: Full Update/CRUD Support

Snowflake 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 Snowflake Data Provider as easily as interacting with a database table.

using (SnowflakeConnection connection = new SnowflakeConnection(connectionString)) {
	SnowflakeDataAdapter dataAdapter = new SnowflakeDataAdapter(
	"SELECT Id, Where FROM Data", connection);
	dataAdapter.UpdateCommand = new SnowflakeCommand(
		"UPDATE Data SET Where = @Where " +
		"WHERE Id = @ID", connection);

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

	DataTable DataTable = new DataTable();

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


Driver Features

  • 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.

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 Snowflake solves these issues by supporting powerful smart caching technology that can greatly improve the performance and dramatically reduce application bottlenecks.

Smart Caching

Smart caching is a configurable option that works by storing queried data into a local database. Enabling smart caching creates a persistent local cache database that contains a replica of data retrieved from the remote source. The cache database is small, lightweight, blazing-fast, and it can be shared by multiple connections as persistent storage.

Caching with our ADO.NET Providers is highly configurable, including options for:

  • Auto Cache - Maintain an automatic local cache of data on all requests. The provider will automatically load data into the cache database each time you execute a SELECT query. Each row returned by the query will be inserted or updated as necessary into the corresponding table in the cache database.
  • Explicit Cache - Cache only on demand. Developers decide exactly what data gets stored in the cache and when it is updated. Explicit caching provides full control over the cache contents by using explicit execution of CACHE statements.
  • No Cache - All requests access only live data and no local cache file is created.

This powerful caching functionality increases application performance and allows applications to disconnect and continue limited functioning without writing code for additional local storage and/or data serialization/deserialization.

More information about ADO.NET Provider caching and best caching practices is available in the included help files.

Getting Started with Snowflake ADO.NET Provider

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


Visual Studio Integration - Server Explorer

As an ADO.NET Data Provider, Snowflake ADO.NET Provider can be used to access and explore Snowflake data directly from the Visual Studio Server Explorer.

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

  • Add a new Data Connection from the Server Explorer and select the Snowflake Data Source

  • Configure the basic connection properties to access your Snowflake account data.

Explore all of the data available! Snowflake ADO.NET Provider makes it easy to access live Snowflake data from Visual Studio.

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

Winforms DataGrid Integration

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

Developers are free to access the Snowflake 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 Snowflake 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 Snowflake 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 Snowflake data with full read/write (CRUD) support.