ADO.NET - 1.1


Extension ID

com.castsoftware.dotnet.ado

What’s new?

See Release Notes for more information.

Description

This extension provides support for SQL query execution calls under ADO.NET using C# language.

Function Point, Quality and Sizing support

  • Function Points (transactions): a green tick indicates that OMG Function Point counting and Transaction Risk Index are supported
  • Quality and Sizing: a green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist
Function Points (transactions) Quality and Sizing

Compatibility

Release Operating System Supported
v3/8.4.x Microsoft Windows / Linux
v2/8.3.x Microsoft Windows

Supported ADO.NET data providers

All supported methods/properties below are used to execute SQL queries on their corresponding server. Other API methods are considered internally so that the query statements are correctly evaluated.

IBM

Namespace Method Parameter Attribute Value
IBM.Data.DB2 (Db2 .NET Provider) IBM.Data.DB2.DB2Command.ExecuteReader IBM.Data.DB2.DB2Command.CommandText
IBM.Data.DB2.DB2Command.ExecutePageReader
IBM.Data.DB2.DB2Command.ExecuteNonQuery
IBM.Data.DB2.DB2Command.ExecuteResultSet
IBM.Data.DB2.DB2Command.ExecuteScalar
IBM.Data.DB2.DB2Command.ExecuteXmlReader
IBM.Data.DB2.DB2Command.ExecuteRow
IBM.Data.DB2.DB2DataAdapter.Fill IBM.Data.DB2.DB2DataAdapter.SelectCommand
IBM.Data.DB2.DB2DataAdapter.FillSchema
IBM.Data.DB2.DB2DataAdapter.Update IBM.Data.DB2.DB2DataAdapter.InsertCommand - IBM.Data.DB2.DB2DataAdapter.UpdateCommand - IBM.Data.DB2.DB2DataAdapter.DeleteCommand
IBM.Data.DB2.Core (Db2 .NET Provider for .NET Core) IBM.Data.DB2.Core.DB2Command.ExecuteReader IBM.Data.DB2.Core.DB2Command.CommandText
IBM.Data.DB2.Core.DB2Command.ExecutePageReader
IBM.Data.DB2.Core.DB2Command.ExecuteNonQuery
IBM.Data.DB2.Core.DB2Command.ExecuteResultSet
IBM.Data.DB2.Core.DB2Command.ExecuteScalar
IBM.Data.DB2.Core.DB2Command.ExecuteXmlReader
IBM.Data.DB2.Core.DB2Command.ExecuteRow
IBM.Data.DB2.Core.DB2BulkCopy.WriteToServer IBM.Data.DB2.Core.DB2BulkCopy.DestinationTableName
IBM.Data.DB2.Core.DB2DataAdapter.Fill IBM.Data.DB2.Core.DB2DataAdapter.SelectCommand
IBM.Data.DB2.Core.DB2DataAdapter.FillSchema
IBM.Data.DB2.Core.DB2DataAdapter.Update IBM.Data.DB2.Core.DB2DataAdapter.InsertCommand - IBM.Data.DB2.Core.DB2DataAdapter.UpdateCommand - IBM.Data.DB2.Core.DB2DataAdapter.DeleteCommand
IBM.Data.DB2.iSeries (IBM iSeries Db2 .NET Provider) IBM.Data.DB2.iSeries.iDB2Command.ExecuteReader IBM.Data.DB2.iSeries.iDB2Command.CommandText
IBM.Data.DB2.iSeries.iDB2Command.ExecuteNonQuery
IBM.Data.DB2.iSeries.iDB2Command.ExecuteScalar
IBM.Data.DB2.iSeries.iDB2Command.ExecuteXmlReader
IBM.Data.DB2.iSeries.iDB2DataAdapter.Fill IBM.Data.DB2.iSeries.iDB2DataAdapter.SelectCommand
IBM.Data.DB2.iSeries.iDB2DataAdapter.FillSchema
IBM.Data.DB2.iSeries.iDB2DataAdapter.Update IBM.Data.DB2.iSeries.iDB2DataAdapter.InsertCommand - IBM.Data.DB2.iSeries.iDB2DataAdapter.UpdateCommand - IBM.Data.DB2.iSeries.iDB2DataAdapter.DeleteCommand
IBM.Data.Informix (IBM Informix .NET Provider) IBM.Data.Informix.IfxCommand.ExecuteReader IBM.Data.Informix.IfxCommand.CommandText
IBM.Data.Informix.IfxCommand.ExecuteNonQuery
IBM.Data.Informix.IfxCommand.ExecuteScalar

Microsoft

Namespace Method Parameter Attribute Value
Microsoft.Data.SqlClient (.NET Data Provider for SQL Server) Microsoft.Data.SqlClient.SqlCommand.ExecuteReader Microsoft.Data.SqlClient.SqlCommand.CommandText
Microsoft.Data.SqlClient.SqlCommand.ExecuteReaderAsync
Microsoft.Data.SqlClient.SqlCommand.BeginExecuteReader
Microsoft.Data.SqlClient.SqlCommand.ExecuteNonQuery
Microsoft.Data.SqlClient.SqlCommand.BeginExecuteNonQuery
Microsoft.Data.SqlClient.SqlCommand.ExecuteNonQueryAsync
Microsoft.Data.SqlClient.SqlCommand.ExecuteScalar
Microsoft.Data.SqlClient.SqlCommand.ExecuteScalarAsync
Microsoft.Data.SqlClient.SqlCommand.ExecuteXmlReader
Microsoft.Data.SqlClient.SqlCommand.ExecuteXmlReaderAsync
Microsoft.Data.SqlClient.SqlCommand.BeginExecuteXmlReader
Microsoft.Data.SqlClient.SqlBulkCopy.WriteToServer Microsoft.Data.SqlClient.SqlBulkCopy.DestinationTableName
Microsoft.Data.SqlClient.SqlBulkCopy.WriteToServerAsync
Microsoft.Data.SqlClient.SqlDataAdapter.Fill Microsoft.Data.SqlClient.SqlDataAdapter.SelectCommand
Microsoft.Data.SqlClient.SqlDataAdapter.FillSchema
Microsoft.Data.SqlClient.SqlDataAdapter.Update Microsoft.Data.SqlClient.SqlDataAdapter.InsertCommand - Microsoft.Data.SqlClient.SqlDataAdapter.UpdateCommand - Microsoft.Data.SqlClient.SqlDataAdapter.DeleteCommand
Microsoft.Data.Sqlite (.NET Data Provider for SQLite) Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader Microsoft.Data.Sqlite.SqliteCommand.CommandText
Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync
Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery
Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQueryAsync
Microsoft.Data.Sqlite.SqliteCommand.ExecuteScalar
Microsoft.Data.Sqlite.SqliteCommand.ExecuteScalarAsync
System.Data.SqlClient (.NET Data Provider for SQL Server) System.Data.SqlClient.SqlCommand.ExecuteReader System.Data.SqlClient.SqlCommand.CommandText
System.Data.SqlClient.SqlCommand.ExecuteReaderAsync
System.Data.SqlClient.SqlCommand.BeginExecuteReader
System.Data.SqlClient.SqlCommand.ExecuteNonQuery
System.Data.SqlClient.SqlCommand.BeginExecuteNonQuery
System.Data.SqlClient.SqlCommand.ExecuteNonQueryAsync
System.Data.SqlClient.SqlCommand.ExecuteScalar
System.Data.SqlClient.SqlCommand.ExecuteScalarAsync
System.Data.SqlClient.SqlCommand.ExecuteXmlReader
System.Data.SqlClient.SqlCommand.ExecuteXmlReaderAsync
System.Data.SqlClient.SqlCommand.BeginExecuteXmlReader
System.Data.SqlClient.SqlBulkCopy.WriteToServer System.Data.SqlClient.SqlBulkCopy.DestinationTableName
System.Data.SqlClient.SqlBulkCopy.WriteToServerAsync
System.Data.SqlClient.SqlDataAdapter.Fill System.Data.SqlClient.SqlDataAdapter.SelectCommand
System.Data.SqlClient.SqlDataAdapter.FillSchema
System.Data.SqlClient.SqlDataAdapter.Update System.Data.SqlClient.SqlDataAdapter.InsertCommand - System.Data.SqlClient.SqlDataAdapter.UpdateCommand - System.Data.SqlClient.SqlDataAdapter.DeleteCommand
System.Data.SQLite (.NET Data Provider for SQLite) System.Data.SQLite.SQLiteCommand.ExecuteReader System.Data.SQLite.SQLiteCommand.CommandText
System.Data.SQLite.SQLiteCommand.ExecuteReaderAsync
System.Data.SQLite.SQLiteCommand.ExecuteNonQuery
System.Data.SQLite.SQLiteCommand.ExecuteNonQueryAsync
System.Data.SQLite.SQLiteCommand.ExecuteScalar
System.Data.SQLite.SQLiteCommand.ExecuteScalarAsync
System.Data.SQLite.SQLiteCommand.Execute
System.Data.SQLite.SQLiteDataAdapter.Fill System.Data.SQLite.SQLiteDataAdapter.SelectCommand
System.Data.SQLite.SQLiteDataAdapter.FillSchema
System.Data.SQLite.SQLiteDataAdapter.Update System.Data.SQLite.SQLiteDataAdapter.InsertCommand - System.Data.SQLite.SQLiteDataAdapter.UpdateCommand - System.Data.SQLite.SQLiteDataAdapter.DeleteCommand
System.Data.OracleClient (.NET Data Provider for Oracle) System.Data.OracleClient.OracleCommand.ExecuteReader System.Data.OracleClient.OracleCommand.CommandText
System.Data.OracleClient.OracleCommand.ExecuteReaderAsync
System.Data.OracleClient.OracleCommand.ExecuteNonQuery
System.Data.OracleClient.OracleCommand.ExecuteOracleNonQuery
System.Data.OracleClient.OracleCommand.ExecuteNonQueryAsync
System.Data.OracleClient.OracleCommand.ExecuteScalar
System.Data.OracleClient.OracleCommand.ExecuteOracleScalar
System.Data.OracleClient.OracleCommand.ExecuteScalarAsync
System.Data.OracleClient.OracleDataAdapter.Fill System.Data.OracleClient.OracleDataAdapter.SelectCommand
System.Data.OracleClient.OracleDataAdapter.FillSchema
System.Data.OracleClient.OracleDataAdapter.Update System.Data.OracleClient.OracleDataAdapter.InsertCommand - System.Data.OracleClient.OracleDataAdapter.UpdateCommand - System.Data.OracleClient.OracleDataAdapter.DeleteCommand
System.Data.OleDb (.NET Data Provider for OLE DB) System.Data.OleDb.OleDbCommand.ExecuteReader System.Data.OleDb.OleDbCommand.CommandText - System.Data.OleDb.OleDbCommand.CommandType
System.Data.OleDb.OleDbCommand.ExecuteReaderAsync CommandType.Text CommandType.TableDirect CommandType.StoredProcedure
System.Data.OleDb.OleDbCommand.ExecuteNonQuery
System.Data.OleDb.OleDbCommand.ExecuteNonQueryAsync
System.Data.OleDb.OleDbCommand.ExecuteScalar
System.Data.OleDb.OleDbCommand.ExecuteScalarAsync
System.Data.OleDb.OleDbDataAdapter.Fill System.Data.OleDb.OleDbDataAdapter.SelectCommand
System.Data.OleDb.OleDbDataAdapter.FillSchema
System.Data.OleDb.OleDbDataAdapter.Update System.Data.OleDb.OleDbDataAdapter.InsertCommand - System.Data.OleDb.OleDbDataAdapter.UpdateCommand - System.Data.OleDb.OleDbDataAdapter.DeleteCommand
System.Data.Odbc (.NET Data Provider for ODBC) System.Data.Odbc.OdbcCommand.ExecuteReader System.Data.Odbc.OdbcCommand.CommandText
System.Data.Odbc.OdbcCommand.ExecuteReaderAsync
System.Data.Odbc.OdbcCommand.ExecuteNonQuery
System.Data.Odbc.OdbcCommand.ExecuteNonQueryAsync
System.Data.Odbc.OdbcCommand.ExecuteScalar
System.Data.Odbc.OdbcCommand.ExecuteScalarAsync
System.Data.Odbc.OdbcDataAdapter.Fill System.Data.Odbc.OdbcDataAdapter.SelectCommand
System.Data.Odbc.OdbcDataAdapter.FillSchema
System.Data.Odbc.OdbcDataAdapter.Update System.Data.Odbc.OdbcDataAdapter.InsertCommand - System.Data.Odbc.OdbcDataAdapter.UpdateCommand - System.Data.Odbc.OdbcDataAdapter.DeleteCommand
System.Data.EntityClient (.NET Data Provider for Entity Framework) System.Data.EntityClient.EntityCommand.ExecuteReader System.Data.EntityClient.EntityCommand.CommandText
System.Data.EntityClient.EntityCommand.ExecuteNonQuery
System.Data.EntityClient.EntityCommand.ExecuteScalar
System.Data.Entity.Core.EntityClient (.NET Core Data Provider for Entity Framework) System.Data.Entity.Core.EntityClient.EntityCommand.ExecuteReader System.Data.Entity.Core.EntityClient.EntityCommand.CommandText
System.Data.Entity.Core.EntityClient.EntityCommand.ExecuteReaderAsync
System.Data.Entity.Core.EntityClient.EntityCommand.ExecuteScalar
System.Data.Entity.Core.EntityClient.EntityCommand.ExecuteNonQuery
System.Data.Entity.Core.EntityClient.EntityCommand.ExecuteNonQueryAsync
System.Data.SqlServerCe (.NET Data Provider for SQL Server Compact) System.Data.SqlServerCe.SqlCeCommand.ExecuteReader System.Data.SqlServerCe.SqlCeCommand.CommandText - System.Data.SqlServerCe.SqlCeCommand.CommandType
System.Data.SqlServerCe.SqlCeCommand.ExecuteNonQuery CommandType.Text CommandType.TableDirect CommandType.StoredProcedure
System.Data.SqlServerCe.SqlCeCommand.ExecuteScalar
System.Data.SqlServerCe.SqlCeCommand.ExecuteResultSet
System.Data.Common (ADO.NET Common Provider Interfaces) System.Data.Common.DbCommand.ExecuteReader System.Data.Common.DbCommand.CommandText
System.Data.Common.DbCommand.ExecuteReaderAsync
System.Data.Common.DbCommand.ExecuteNonQuery
System.Data.Common.DbCommand.ExecuteNonQueryAsync
System.Data.Common.DbCommand.ExecuteScalar
System.Data.Common.DbCommand.ExecuteScalarAsync
System.Data.Common.DbBatch.ExecuteReader System.Data.Common.DbBatchCommand.CommandText
System.Data.Common.DbBatch.ExecuteReaderAsync
System.Data.Common.DbBatch.ExecuteNonQuery
System.Data.Common.DbBatch.ExecuteNonQueryAsync
System.Data.Common.DbBatch.ExecuteScalar
System.Data.Common.DbBatch.ExecuteScalarAsync
System.Data.Common.DbDataAdapter.Fill System.Data.Common.DbDataAdapter.SelectCommand
System.Data.Common.DbDataAdapter.FillSchema
System.Data.Common.DbDataAdapter.Update System.Data.Common.DbDataAdapter.InsertCommand - System.Data.Common.DbDataAdapter.UpdateCommand - System.Data.Common.DbDataAdapter.DeleteCommand
System.Data.Linq (.NET Data Provider for LINQ to SQL) System.Data.Linq.DataContext.ExecuteCommand
System.Data.Linq.DataContext.ExecuteQuery
System.Data.Linq.DataContext.ExecuteQuery
System.Data.Linq.Table.InsertOnSubmit TEntity
System.Data.Linq.Table.InsertAllOnSubmit IEnumerable
System.Data.Linq.Table.DeleteOnSubmit TEntity
System.Data.Linq.Table.DeleteAllOnSubmit IEnumerable
System.Data.Linq.Table.GetEnumerator
System.Linq (.NET Data Provider for LINQ to SQL) System.Linq.Enumerable.ToList
System.Linq.Enumerable.ToList
System.Linq.Enumerable.ToArray
System.Linq.Enumerable.ToDictionary
System.Linq.Enumerable.ToHashSet
System.Linq.Enumerable.ToLookup
System.Linq.Queryable.All
System.Linq.Queryable.Any
System.Linq.Queryable.Average
System.Linq.Queryable.Contains
System.Linq.Queryable.Count
System.Linq.Queryable.ElementAt
System.Linq.Queryable.ElementAtOrDefault
System.Linq.Queryable.First
System.Linq.Queryable.FirstOrDefault
System.Linq.Queryable.Last
System.Linq.Queryable.LastOrDefault
System.Linq.Queryable.LongCount
System.Linq.Queryable.Max
System.Linq.Queryable.Min
System.Linq.Queryable.Single
System.Linq.Queryable.SingleOrDefault
System.Linq.Queryable.Sum

MySQL

Namespace Method Parameter Attribute Value
MySql.Data.MySqlClient (MySQL Connector/NET) MySql.Data.MySqlClient.MySqlCommand.ExecuteReader MySql.Data.MySqlClient.MySqlCommand.CommandText
MySql.Data.MySqlClient.MySqlCommand.ExecuteReaderAsync
MySql.Data.MySqlClient.MySqlCommand.BeginExecuteReader
MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery
MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQueryAsync
MySql.Data.MySqlClient.MySqlCommand.BeginExecuteNonQuery
MySql.Data.MySqlClient.MySqlCommand.ExecuteScalar
MySql.Data.MySqlClient.MySqlCommand.ExecuteScalarAsync
MySql.Data.MySqlClient.MySqlDataAdapter.Fill MySql.Data.MySqlClient.MySqlDataAdapter.SelectCommand
MySql.Data.MySqlClient.MySqlDataAdapter.FillSchema
MySql.Data.MySqlClient.MySqlDataAdapter.Update MySql.Data.MySqlClient.MySqlDataAdapter.InsertCommand - MySql.Data.MySqlClient.MySqlDataAdapter.UpdateCommand - MySql.Data.MySqlClient.MySqlDataAdapter.DeleteCommand
MySqlConnector (MySqlConnector ADO.NET provider) MySqlConnector.MySqlCommand.ExecuteReader MySqlConnector.MySqlCommand.CommandText
MySqlConnector.MySqlCommand.ExecuteReaderAsync
MySqlConnector.MySqlCommand.ExecuteNonQuery
MySqlConnector.MySqlCommand.ExecuteNonQueryAsync
MySqlConnector.MySqlCommand.ExecuteScalar
MySqlConnector.MySqlCommand.ExecuteScalarAsync
MySqlConnector.MySqlBatch.ExecuteReader MySqlConnector.MySqlBatch.BatchCommands
MySqlConnector.MySqlBatch.ExecuteReaderAsync
MySqlConnector.MySqlBatch.ExecuteNonQuery
MySqlConnector.MySqlBatch.ExecuteNonQueryAsync
MySqlConnector.MySqlBatch.ExecuteScalar
MySqlConnector.MySqlBatch.ExecuteScalarAsync
MySqlConnector.MySqlBulkCopy.WriteToServer MySqlConnector.MySqlBulkCopy.DestinationTableName
MySqlConnector.MySqlBulkCopy.WriteToServerAsync
MySqlConnector.MySqlBulkLoader.Load MySqlConnector.MySqlBulkLoader.TableName
MySqlConnector.MySqlBulkLoader.LoadAsync
MySqlConnector.MySqlDataAdapter.Fill MySqlConnector.MySqlDataAdapter.SelectCommand
MySqlConnector.MySqlDataAdapter.FillSchema
MySqlConnector.MySqlDataAdapter.Update MySqlConnector.MySqlDataAdapter.InsertCommand - MySqlConnector.MySqlDataAdapter.UpdateCommand - MySqlConnector.MySqlDataAdapter.DeleteCommand

Oracle Server

Namespace Method Parameter Attribute Value
Oracle.DataAccess.Client (Oracle Data Provider for .NET - Unmanaged Driver) Oracle.DataAccess.Client.OracleCommand.ExecuteReader Oracle.DataAccess.Client.OracleCommand.CommandText
Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery
Oracle.DataAccess.Client.OracleCommand.ExecuteScalar
Oracle.DataAccess.Client.OracleCommand.ExecuteXmlReader
Oracle.DataAccess.Client.OracleCommand.ExecuteStream
Oracle.DataAccess.Client.OracleCommand.ExecuteToStream
Oracle.DataAccess.Client.OracleBulkCopy.WriteToServer Oracle.DataAccess.Client.OracleBulkCopy.DestinationTableName
Oracle.DataAccess.Client.OracleDataAdapter.Fill Oracle.DataAccess.Client.OracleDataAdapter.SelectCommand
Oracle.DataAccess.Client.OracleDataAdapter.FillSchema
Oracle.DataAccess.Client.OracleDataAdapter.Update Oracle.DataAccess.Client.OracleDataAdapter.InsertCommand - Oracle.DataAccess.Client.OracleDataAdapter.UpdateCommand - Oracle.DataAccess.Client.OracleDataAdapter.DeleteCommand
Oracle.ManagedDataAccess.Client (Oracle Data Provider for .NET - Managed Driver) Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteReader Oracle.ManagedDataAccess.Client.OracleCommand.CommandText
Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery
Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteScalar
Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteXmlReader
Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteStream
Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteToStream
Oracle.ManagedDataAccess.Client.OracleBulkCopy.WriteToServer Oracle.ManagedDataAccess.Client.OracleBulkCopy.DestinationTableName
Oracle.ManagedDataAccess.Client.OracleDataAdapter.Fill Oracle.ManagedDataAccess.Client.OracleDataAdapter.SelectCommand
Oracle.ManagedDataAccess.Client.OracleDataAdapter.FillSchema
Oracle.ManagedDataAccess.Client.OracleDataAdapter.Update Oracle.ManagedDataAccess.Client.OracleDataAdapter.InsertCommand - Oracle.ManagedDataAccess.Client.OracleDataAdapter.UpdateCommand - Oracle.ManagedDataAccess.Client.OracleDataAdapter.DeleteCommand

Devart

Namespace Method Parameter Attribute Value
Devart.Common (Devart dotConnect) Devart.Common.DbCommandBase.ExecutePageReader Devart.Common.DbCommandBase.CommandText
Devart.Common.DbCommandBase.BeginExecuteReader
Devart.Common.DbCommandBase.ExecuteNonQuery
Devart.Common.DbCommandBase.BeginExecuteNonQuery
Devart.Common.DbCommandBase.ExecuteScalar
Devart.Common.SqlStatement.Execute Devart.Common.SqlStatement.Text
Devart.Common.SqlStatement.ExecuteNonQuery
Devart.Common.DbScript.Execute
Devart.Common.DbScript.ExecuteNext
Devart.Common.DbDataAdapter.FillPage Devart.Common.DbDataAdapter.SelectCommand
Devart.Data.Oracle (Devart dotConnect for Oracle) Devart.Data.Oracle.OracleCommand.ExecuteReader Devart.Data.Oracle.OracleCommand.CommandText
Devart.Data.Oracle.OracleCommand.ExecutePageReader
Devart.Data.Oracle.OracleCommand.ExecuteNonQuery
Devart.Data.Oracle.OracleCommand.ExecuteScalar
Devart.Data.Oracle.OracleCommand.ExecuteArray
Devart.Data.Oracle.OracleDataAdapter.Fill Devart.Data.Oracle.OracleDataAdapter.SelectCommand
Devart.Data.Oracle.OracleDataAdapter.FillPage
Devart.Data.Oracle.OracleDataAdapter.FillSchema
Devart.Data.Oracle.OracleDataAdapter.Update Devart.Data.Oracle.OracleDataAdapter.InsertCommand - Devart.Data.Oracle.OracleDataAdapter.UpdateCommand - Devart.Data.Oracle.OracleDataAdapter.DeleteCommand
Devart.Data.MySql (Devart dotConnect for MySql) Devart.Data.MySql.MySqlCommand.ExecuteReader Devart.Data.MySql.MySqlCommand.CommandText
Devart.Data.MySql.MySqlCommand.BeginExecuteReader
Devart.Data.MySql.MySqlCommand.ExecutePageReader
Devart.Data.MySql.MySqlHelper.ExecuteReader
Devart.Data.MySql.MySqlHelper.ExecuteNonQuery
Devart.Data.MySql.MySqlHelper.ExecuteScalar
Devart.Data.MySql.MySqlStatement.Execute
(Overriden from Devart.Common) Devart.Data.MySql.MySqlScript.ScriptText
Devart.Data.MySql.MySqlDataAdapter.Fill Devart.Data.MySql.MySqlDataAdapter.SelectCommand
Devart.Data.MySql.MySqlDataAdapter.FillPage
Devart.Data.MySql.MySqlDataAdapter.FillSchema
Devart.Data.MySql.MySqlDataAdapter.Update Devart.Data.MySql.MySqlDataAdapter.InsertCommand - Devart.Data.MySql.MySqlDataAdapter.UpdateCommand - Devart.Data.MySql.MySqlDataAdapter.DeleteCommand
Devart.Data.SQLite (Devart dotConnect for SQLite) Devart.Data.SQLite.SQLiteCommand.ExecuteReader Devart.Data.SQLite.SQLiteCommand.CommandText
Devart.Data.SQLite.SQLiteCommand.ExecutePageReader
(Overriden from Devart.Common) Devart.Data.SQLite.SQLiteScript.ScriptText
(Overriden from System.Data.Common) Devart.Data.SQLite.SQLiteDataAdapter.SelectCommand - Devart.Data.SQLite.SQLiteDataAdapter.UpdateCommand - Devart.Data.SQLite.SQLiteDataAdapter.InsertCommand Devart.Data.SQLite.SQLiteDataAdapter.DeleteCommand
Devart.Data.PostgreSql (Devart dotConnect for PostgreSql) Devart.Data.PostgreSql.PgSqlCommand.ExecuteReader Devart.Data.PostgreSql.PgSqlCommand.CommandText
Devart.Data.PostgreSql.PgSqlCommand.ExecutePageReader
(Overriden from Devart.Common) Devart.Data.PostgreSql.PgSqlScript.ScriptText
(Overriden from System.Data.Common) Devart.Data.PostgreSql.PgSqlDataAdapter.SelectCommand - Devart.Data.PostgreSql.PgSqlDataAdapter.UpdateCommand - Devart.Data.PostgreSql.PgSqlDataAdapter.InsertCommand - Devart.Data.PostgreSql.PgSqlDataAdapter.DeleteCommand
Devart.Data.Linq (Devart dotConnect for LINQ to SQL) Devart.Data.Linq.DataContext.ExecuteCommand
Devart.Data.Linq.DataContext.ExecuteQuery

PostgreSQL

Namespace Method Parameter Attribute Value
Npgsql (.NET Data Provider for PostgreSQL) Npgsql.NpgsqlCommand.ExecuteReader Npgsql.NpgsqlCommand.CommandText
Npgsql.NpgsqlCommand.ExecuteReaderAsync
Npgsql.NpgsqlCommand.ExecuteNonQuery
Npgsql.NpgsqlCommand.ExecuteNonQueryAsync
Npgsql.NpgsqlCommand.ExecuteScalar
Npgsql.NpgsqlCommand.ExecuteScalarAsync
Npgsql.NpgsqlBatch.ExecuteReader Npgsql.NpgsqlBatch.BatchCommands
Npgsql.NpgsqlBatch.ExecuteReaderAsync
Npgsql.NpgsqlBatch.ExecuteNonQuery
Npgsql.NpgsqlBatch.ExecuteNonQueryAsync
Npgsql.NpgsqlBatch.ExecuteScalar
Npgsql.NpgsqlBatch.ExecuteScalarAsync
Npgsql.NpgsqlDataAdapter.Fill Npgsql.NpgsqlDataAdapter.SelectCommand
Npgsql.NpgsqlDataAdapter.FillSchema
Npgsql.NpgsqlDataAdapter.Update Npgsql.NpgsqlDataAdapter.InsertCommand - Npgsql.NpgsqlDataAdapter.UpdateCommand - Npgsql.NpgsqlDataAdapter.DeleteCommand

Praeclarum

Namespace Method Parameter Attribute Value
SQLite (Praeclarum SQLite ADO.NET Provider) SQLite.SQLiteCommand.ExecuteQuery SQLite.SQLiteCommand.CommandText
SQLite.SQLiteCommand.ExecuteDeferredQuery
SQLite.SQLiteCommand.ExecuteNonQuery
SQLite.SQLiteCommand.ExecuteScalar
SQLite.SQLiteCommand.ExecuteQueryScalars
SQLite.SQLiteConnection.Execute string - params object[]
SQLite.SQLiteConnection.ExecuteScalar
SQLite.SQLiteConnection.Query
SQLite.SQLiteConnection.QueryScalars
SQLite.SQLiteConnection.DeferredQuery
SQLite.SQLiteConnection.GetTableInfo string
SQLite.SQLiteConnection.DropTable
SQLite.SQLiteConnection.CreateTable
SQLite.SQLiteConnection.CreateTables CreateFlags
SQLite.SQLiteConnection.Get object
object - TableMapping
SQLite.SQLiteConnection.Find object
object - TableMapping
SQLite.SQLiteConnection.FindWithQuery string - params object[]
TableMapping - string - params object[]
SQLite.SQLiteConnection.Insert object
object - Type
object - string
object - string - Type
SQLite.SQLiteConnection.InsertAll IEnumerable - bool
IEnumerable - string extra - bool
IEnumerable - Type - bool
SQLite.SQLiteConnection.InsertOrReplace object
object - Type
SQLite.SQLiteConnection.Update object
object - Type
SQLite.SQLiteConnection.UpdateAll IEnumerable - bool
SQLite.SQLiteConnection.Delete object
SQLite.SQLiteConnection.DeleteAll
SQLite.SQLiteAsyncConnection.CreateTableAsync
SQLite.SQLiteAsyncConnection.CreateTablesAsync CreateFlags
SQLite.SQLiteAsyncConnection.DropTableAsync
SQLite.SQLiteAsyncConnection.InsertAsync object
object - Type
object - string
object - string - Type
SQLite.SQLiteAsyncConnection.InsertOrReplaceAsync object
object - Type
SQLite.SQLiteAsyncConnection.InsertAllAsync IEnumerable - bool
IEnumerable - string - bool
IEnumerable - Type - bool
SQLite.SQLiteAsyncConnection.UpdateAsync object
object - Type
SQLite.SQLiteAsyncConnection.UpdateAllAsync IEnumerable - bool
SQLite.SQLiteAsyncConnection.DeleteAsync object
SQLite.SQLiteAsyncConnection.DeleteAllAsync
SQLite.SQLiteAsyncConnection.GetAsync object
object - TableMapping
SQLite.SQLiteAsyncConnection.FindAsync object
object - TableMapping
SQLite.SQLiteAsyncConnection.FindWithQueryAsync string - params object[]
TableMapping - string - params object[]
SQLite.SQLiteAsyncConnection.GetTableInfoAsync string
SQLite.SQLiteAsyncConnection.ExecuteAsync string - params object[]
SQLite.SQLiteAsyncConnection.ExecuteScalarAsync
SQLite.SQLiteAsyncConnection.QueryAsync
SQLite.SQLiteAsyncConnection.QueryScalarsAsync
SQLite.SQLiteAsyncConnection.DeferredQueryAsync
SQLite.TableQuery.GetEnumerator
SQLite.TableQuery.Count
SQLite.TableQuery.Delete
SQLite.TableQuery.ToList
SQLite.TableQuery.ToArray
SQLite.TableQuery.First
SQLite.TableQuery.FirstOrDefault

SAP ASE

Namespace Method Parameter Attribute Value
Sybase.Data.AseClient (.NET Data Provider for Sybase ASE) Sybase.Data.AseClient.AseCommand.ExecuteReader Sybase.Data.AseClient.AseCommand.CommandText
Sybase.Data.AseClient.AseCommand.BeginExecuteReader
Sybase.Data.AseClient.AseCommand.ExecuteNonQuery
Sybase.Data.AseClient.AseCommand.BeginExecuteNonQuery
Sybase.Data.AseClient.AseCommand.ExecuteScalar
Sybase.Data.AseClient.AseCommand.ExecuteXmlReader
Sybase.Data.AseClient.AseCommand.BeginExecuteXmlReader
Sybase.Data.AseClient.AseDataAdapter.Fill Sybase.Data.AseClient.AseDataAdapter.SelectCommand
Sybase.Data.AseClient.AseDataAdapter.FillSchema
Sybase.Data.AseClient.AseDataAdapter.Update Sybase.Data.AseClient.AseDataAdapter.InsertCommand - Sybase.Data.AseClient.AseDataAdapter.UpdateCommand - Sybase.Data.AseClient.AseDataAdapter.DeleteCommand
AdoNetCore.AseClient (.NET Core Data Provider for Sybase ASE) AdoNetCore.AseClient.AseCommand.ExecuteReader AdoNetCore.AseClient.AseCommand.CommandText
AdoNetCore.AseClient.AseCommand.ExecuteNonQuery
AdoNetCore.AseClient.AseCommand.ExecuteScalar
AdoNetCore.AseClient.AseCommand.ExecuteXmlReader
AdoNetCore.AseClient.AseDataAdapter.Fill AdoNetCore.AseClient.AseDataAdapter.SelectCommand
AdoNetCore.AseClient.AseDataAdapter.FillSchema
AdoNetCore.AseClient.AseDataAdapter.Update AdoNetCore.AseClient.AseDataAdapter.InsertCommand - AdoNetCore.AseClient.AseDataAdapter.UpdateCommand - AdoNetCore.AseClient.AseDataAdapter.DeleteCommand

Teradata

Namespace Method Parameter Attribute Value
Teradata.Client.Provider (.NET Data Provider for Teradata) Teradata.Client.Provider.TdCommand.ExecuteReader Teradata.Client.Provider.TdCommand.CommandText
Teradata.Client.Provider.TdCommand.ExecuteReaderAsync
Teradata.Client.Provider.TdCommand.BeginExecuteReader
Teradata.Client.Provider.TdCommand.ExecuteNonQuery
Teradata.Client.Provider.TdCommand.ExecuteNonQueryAsync
Teradata.Client.Provider.TdCommand.BeginExecuteNonQuery
Teradata.Client.Provider.TdCommand.ExecuteScalar
Teradata.Client.Provider.TdCommand.ExecuteScalarAsync
Teradata.Client.Provider.TdCommand.ExecuteCreateProcedure
Teradata.Client.Provider.TdDataAdapter.Fill Teradata.Client.Provider.TdDataAdapter.SelectCommand
Teradata.Client.Provider.TdDataAdapter.FillSchema
Teradata.Client.Provider.TdDataAdapter.Update Teradata.Client.Provider.TdDataAdapter.InsertCommand - Teradata.Client.Provider.TdDataAdapter.UpdateCommand - Teradata.Client.Provider.TdDataAdapter.DeleteCommand

SnowFlake

Namespace Method Parameter Attribute Value
Snowflake.Client (.NET Client for Snowflake DB REST API) Snowflake.Client.SnowflakeClient.ExecuteAsync
Snowflake.Client.SnowflakeClient.ExecuteScalarAsync
Snowflake.Client.SnowflakeClient.QueryAsync
Snowflake.Client.SnowflakeClient.QueryRawResponseAsync
Snowflake.Data.Client (Snowflake Connector for .NET) Snowflake.Data.Client.SnowflakeDbCommand.ExecuteNonQuery Snowflake.Data.Client.SnowflakeDbCommand.CommandText
Snowflake.Data.Client.SnowflakeDbCommand.ExecuteNonQueryAsync
Snowflake.Data.Client.SnowflakeDbCommand.ExecuteScalar
Snowflake.Data.Client.SnowflakeDbCommand.ExecuteScalarAsync

Spring

Namespace Method Parameter Attribute Value
Spring.Data.Generic (Spring Data Generic ADO.NET Provider) Spring.Data.Generic.AdoTemplate.Execute IDataAdapterCallback DoInDataAdapter(IDbDataAdapter)
IDbCommandCreator CreateDbCommand(IDbProvider)
IDbCommandDelegate
IDbCommandCallback DoInCommand(IDbCommand)
CommandDelegate
ICommandCallback DoInCommand(DbCommand)
DataAdapterDelegate
Spring.Data.Generic.AdoTemplate.ExecuteNonQuery string
string - ICommandSetter SetValues(IDbCommand)
IDbCommandCreator CreateDbCommand(IDbProvider)
Spring.Data.Generic.AdoTemplate.ExecuteScalar string
string - ICommandSetter SetValues(IDbCommand)
IDbCommandCreator CreateDbCommand(IDbProvider)
Spring.Data.Generic.AdoTemplate.QueryForObject string
string - ICommandSetter SetValues(IDbCommand)
Spring.Data.Generic.AdoTemplate.QueryForObjectDelegate string
ICommandSetter SetValues(IDbCommand)
Spring.Data.Generic.AdoTemplate.QueryWithCommandCreator IDbCommandCreator CreateDbCommand(IDbProvider)
Spring.Data.Generic.AdoTemplate.QueryWithResultSetExtractor string - ICommandSetter SetValues(IDbCommand)
string - CommandSetterDelegate
string
Spring.Data.Generic.AdoTemplate.QueryWithResultSetExtractorDelegate string - ICommandSetter SetValues(IDbCommand)
string - CommandSetterDelegate
string
Spring.Data.Generic.AdoTemplate.QueryWithRowCallback
string - ICommandSetter SetValues(IDbCommand)
Spring.Data.Generic.AdoTemplate.QueryWithRowCallbackDelegate string
string - ICommandSetter SetValues(IDbCommand)
Spring.Data.Generic.AdoTemplate.QueryWithRowMapper string
string - ICommandSetter SetValues(IDbCommand)
Spring.Data.Generic.AdoTemplate.QueryWithRowMapperDelegate string
string - ICommandSetter SetValues(IDbCommand)
Spring.Data.Core (Spring Data Core ADO.NET Provider) Spring.Data.Core.AdoTemplate.DataSetCreate string
string - IDataAdapterSetter SetValues(IDbDataAdapter)
Spring.Data.Core.AdoTemplate.DataSetCreateWithParams string
string - IDataAdapterSetter SetValues(IDbDataAdapter)
Spring.Data.Core.AdoTemplate.DataSetFill string
string - IDataAdapterSetter SetValues(IDbDataAdapter)
Spring.Data.Core.AdoTemplate.DataSetFillWithParameters string
string - IDataAdapterSetter SetValues(IDbDataAdapter)
Spring.Data.Core.AdoTemplate.DataSetUpdate IDbCommand - IDbCommand - IDbCommand CreateDbCommand(IDbProvider) - CreateDbCommand(IDbProvider) - CreateDbCommand(IDbProvider)
string - string - string
IDbCommand - IDbCommand - IDbCommand - IDataAdapterSetter CreateDbCommand(IDbProvider) - CreateDbCommand(IDbProvider) - CreateDbCommand(IDbProvider) - SetValues(IDbDataAdapter)
Spring.Data.Core.AdoTemplate.DataSetUpdateWithCommandBuilder string
string - IDataAdapterSetter SetValues(IDbDataAdapter)
Spring.Data.Core.AdoTemplate.DataTableCreate string
string - IDataAdapterSetter SetValues(IDbDataAdapter)
Spring.Data.Core.AdoTemplate.DataTableCreateWithParams string
string - IDataAdapterSetter SetValues(IDbDataAdapter)
Spring.Data.Core.AdoTemplate.DataTableFill string
string - IDataAdapterSetter SetValues(IDbDataAdapter)
Spring.Data.Core.AdoTemplate.DataTableFillWithParams string
string - IDataAdapterSetter SetValues(IDbDataAdapter)
Spring.Data.Core.AdoTemplate.DataTableUpdate string - string - string - IDataAdapterSetter
string - string - string
Spring.Data.Core.AdoTemplate.DataTableUpdateWithCommandBuilder string
string - IDataAdapterSetter SetValues(IDbDataAdapter)
Spring.Data.Core.AdoTemplate.Execute IDataAdapterCallback DoInDataAdapter(IDbDataAdapter)
IDbCommandCreator CreateDbCommand(IDbProvider)
IDbCommandDelegate
IDbCommandCallback DoInCommand(IDbCommand)
CommandDelegate
ICommandCallback DoInCommand(DbCommand)
DataAdapterDelegate
Spring.Data.Core.AdoTemplate.ExecuteNonQuery string
string - ICommandSetter SetValues(IDbCommand)
IDbCommandCreator CreateDbCommand(IDbProvider)
Spring.Data.Core.AdoTemplate.ExecuteScalar string
string - ICommandSetter SetValues(IDbCommand)
IDbCommandCreator CreateDbCommand(IDbProvider)
Spring.Data.Core.AdoTemplate.QueryForObject string
string - ICommandSetter SetValues(IDbCommand)
Spring.Data.Core.AdoTemplate.QueryForObjectDelegate string
ICommandSetter SetValues(IDbCommand)
Spring.Data.Core.AdoTemplate.QueryWithCommandCreator IDbCommandCreator CreateDbCommand(IDbProvider)
Spring.Data.Core.AdoTemplate.QueryWithResultSetExtractor string - ICommandSetter SetValues(IDbCommand)
string - CommandSetterDelegate
string
Spring.Data.Core.AdoTemplate.QueryWithResultSetExtractorDelegate string - ICommandSetter SetValues(IDbCommand)
string - CommandSetterDelegate
string
Spring.Data.Core.AdoTemplate.QueryWithRowCallback
string - ICommandSetter SetValues(IDbCommand)
Spring.Data.Core.AdoTemplate.QueryWithRowCallbackDelegate string
string - ICommandSetter SetValues(IDbCommand)
Spring.Data.Core.AdoTemplate.QueryWithRowMapper string
string - ICommandSetter SetValues(IDbCommand)
Spring.Data.Core.AdoTemplate.QueryWithRowMapperDelegate string
string - ICommandSetter SetValues(IDbCommand)

What results can you expect?

Objects

The following objects are created by the extension, with the corresponding icon displayed in CAST Enlighten:

Icon Object type Description When is this object created ?
Dotnet Ado Query An object is created for each SQL query found and resolved in an Dotnet CRUD method call
DotNet Unknown ADO Query An object is created for each SQL query found could not be resolved correctly in an Dotnet CRUD method call
DotNet ADO Entity An object is created for each SQL query found could not be resolved correctly in an Dotnet CRUD method call
DotNet Unknown ADO Entity An object is created for each SQL query found could not be resolved correctly in an Dotnet CRUD method call
DotNet ADO Entity Operation An object is created for each SQL query found could not be resolved correctly in an Dotnet CRUD method call
DotNet Unknown ADO Entity Operation An object is created for each SQL query found could not be resolved correctly in an Dotnet CRUD method call

The following links will be created by the Ado.Net extension, or by alternate extensions.

Link type Caller type Callee type Methods Supported
callLink C# Method All CRUD methods supported from ADO.NET providers (see above)
callLink C# Method All CRUD methods supported from ADO.NET providers (see above)
callLink C# Method All CRUD methods supported from ADO.NET providers (see above)
callLink C# Method All CRUD methods supported from ADO.NET providers (see above)
callLink C# Method All CRUD methods supported from ADO.NET providers (see above)
callLink C# Method All CRUD methods supported from ADO.NET providers (see above)
relyonLink All CRUD methods supported from ADO.NET providers (see above)
relyonLink All CRUD methods supported from ADO.NET providers (see above)
useLink Dotnet Ado Query Created by SQL Analyzer when DDL source files are analyzed
callLink Dotnet Ado Query
useLink Dotnet Ado Query Created by Missing tables and procedures for .NET when the object is not analyzed
callLink Dotnet Ado Query

Git samples

Direct SQLexternal link

DirectSQL-main\TestSqlLiteDatabase\SqlResultTest.cs
private static void CreateTableForTest(IDbConnection connection)
{
   using (var command = connection.CreateCommand())
   {
       command.CommandText =
           "create table " +
           "TEST_TABLE(" +
           "TEST_COL1 text," +
           "TEST_COL2 integer" +
           ")";

       command.ExecuteNonQuery();
   }
}

One Ado object is created:

DirectSQL-main\TestSqlLiteDatabase\QueryDefaultTransaction.cs
private static void CreateTableForTest(IDbConnection connection)
{
   using( var command = connection.CreateCommand())
   {
       command.CommandText =
                   "create table " +
                    "TEST_TABLE(" +
                    "TEST_VAL1 text," +
                    "TEST_VAL2 integer" +
                    ")";

       command.ExecuteNonQuery();
   }
}

One Ado object is created:

Employee managementexternal link

ASPNetCore_ADO-master\EmployeeManagement\Models\EmployeeDataAccessLayer.cs
public Employee GetEmployeeData(int? id)
        {
            Employee employee = new Employee();

            using (SqlConnection con = new SqlConnection(connectionString))
            {
                string sqlQuery = "SELECT * FROM tblEmployee WHERE EmployeeID= " + id;
                SqlCommand cmd = new SqlCommand(sqlQuery, con);

                con.Open();
                SqlDataReader rdr = cmd.ExecuteReader();

                while (rdr.Read())
                {
                    employee.ID = Convert.ToInt32(rdr["EmployeeID"]);
                    employee.Name = rdr["Name"].ToString();
                    employee.Gender = rdr["Gender"].ToString();
                    employee.Department = rdr["Department"].ToString();
                    employee.City = rdr["City"].ToString();
                }
            }
            return employee;
        }

One Ado object is created:

Test case

using System.Data.Linq;
using System.Data.Linq.Mapping;

namespace Test01_linq_sql
{
    [Table(Name = "CustomerInfo")]
    public class CustomerData
    {
        [Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
        public int CustomerId { get; set; }

        [Column]
        public string CustomerName { get; set; } = default!;

        [Column]
        public string FirstName { get; set; } = default!;

        [Column]
        public string Contact { get; set; } = default!;

        [Column]
        public string Address { get; set; } = default!;

        [Column]
        public string City { get; set; } = default!;

        [Column]
        public string PostalCode { get; set; } = default!;

        [Column]
        public string Country { get; set; } = default!;
    }

    public class Program
    {
        static void Main(string[] args)
        {
            string connectionStr = "Data Source=.;database=AdoNet;Integrated Security=SSPI;";
            DataContext AdoNetDb = new DataContext(connectionStr);
            Table<CustomerData> CustomerTable = AdoNetDb.GetTable<CustomerData>();

            // display values after reading
            foreach(var line in CustomerTable)
            {
                Console.WriteLine(line.CustomerName);
            }

            // Create a new Order object
            CustomerTable.InsertOnSubmit(
                new CustomerData
                    {

                        CustomerName = "Can1",
                        FirstName = "Furrya",
                        Contact = "trans_tarzan_of_the_jungle@gmail.com",
                        Address = "Amazonia",
                        City = "NoWhere",
                        PostalCode = "XXXXXX",
                        Country = "Brazil"
                    }
            );

            CustomerData ord = new CustomerData
            {
                // CustomerId = 6,
                CustomerName = "De La Crème",
                FirstName = "Thierry",
                Contact = "itsmaam@gmail.com",
                Address = "Down town LA",
                City = "California",
                PostalCode = "XXXXXX",
                Country = "Murika"
            };

            CustomerTable.InsertOnSubmit(ord);
            AdoNetDb.SubmitChanges();

            IEnumerable<CustomerData> productQuery =  
                        from prod in CustomerTable  
                        where prod.CustomerId == 3  
                        select prod;  

            foreach(var i in productQuery)
            {
                Console.WriteLine(i.CustomerName);
            }

            CustomerTable.DeleteOnSubmit(ord);

            AdoNetDb.SubmitChanges();
            IEnumerable<CustomerData> productQuery2 =  
                        from prod in CustomerTable   
                        select prod;  

            foreach(var i in productQuery2)
            {
                Console.WriteLine(i.CustomerName);
            }

        }
    }
}

4 Ado objects are created:

Limitations

  • In case of dotnet ado query object, each evaluation that results in standard exception or empty value will lead to one unknown object creation. Also, failure in value conversion will create unknown object.
  • As of now, there isn’t any creation for either unknown entity or its operation. If a vital information is missing, the extension will jump to the next evaluation to begin a new process.
  • Some query objects need better fitlering to determine if their values should be considered unknown.
  • Support for Linq To Dataset is not covered in this release.