Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Short answer: ADO.NET (Active Data Objects .NET) is a data access technology in the .NET framework that enables applications to interact with databases and other data sources. Explain a bit more It provides a set of clas…
Short answer: And forth between rows (using DataRow and DataColumn). DataReader: A DataReader is a forward-only, read-only data cursor. Real-world example (ShopNest) For large order exports, ShopNest uses SqlDataReader (…
Short answer: DataSet: It is a disconnected, in-memory data structure that can hold multiple tables. Explain a bit more It can also be updated and later written back to the database. You can move back and forth between r…
Short answer: A DataAdapter serves as a bridge between a DataSet/DataTable and the database. It is used to fill a DataSet with data and to update changes made in the DataSet back to the database. Example code SqlDataAdap…
Short answer: The Command object is used to execute SQL queries or stored procedures against a database. It encapsulates the SQL statement or stored procedure and returns results. Example code SqlCommand command = new Sq…
Short answer: ExecuteNonQuery: Executes SQL commands that do not return data (e.g., INSERT, UPDATE, DELETE). Example code command.ExecuteNonQuery(); (used to insert a record). ExecuteReader: Executes SQL commands that re…
Short answer: The ConnectionString contains information required to connect to the database, such as the database server, database name, credentials, and other configurations. Example: string connectionString = "Dat…
Short answer: SqlConnection: Used specifically for connecting to SQL Server databases. OleDbConnection: A more general connection class that can connect to a variety of data sources, such as MS Access, Excel, Oracle, etc…
Short answer: SQLCommand: A SQL command is a string of SQL code (like SELECT, INSERT, etc.) that is executed directly against the database. Stored Procedure: A precompiled collection of SQL statements that can be execute…
Short answer: Connection Pooling allows multiple applications or threads to reuse existing database connections instead of opening a new connection each time. It improves performance by reducing the overhead of opening a…
Short answer: The CommandTimeout property specifies the amount of time (in seconds) before a command is considered to have timed out. If the command execution takes longer than the specified time, an error is raised. Exa…
Short answer: The SqlDataAdapter serves as a bridge between a DataSet (or DataTable) and the database. It is responsible for: Real-world example (ShopNest) ShopNest’s reporting job still uses ADO.NET for a heavy SQL quer…
Short answer: mount of data quickly and do not need to modify the data. Explain a bit more It requires an open connection to the database and reads data sequentially, one row at a time. mount of data quickly and do not n…
Short answer: The SqlDataReader is used to retrieve data from the database in a forward-only and read-only manner. It is more efficient than a DataSet when you need to retrieve a large amount of data quickly and do not n…
Short answer: dapter.Fill(dataset, "Customers"); // Fills the DataSet with data from the "Customers" table dapter.Fill(dataset, "Customers"); // Fills the DataSet with data from the "Cu…
Short answer: DataSet is a collection of DataTable objects, and it can hold multiple tables and relationships between them. Explain a bit more It is used for handling disconnected data and can work offline, and it can al…
Short answer: The SqlConnection object is responsible for opening a connection to a SQL Server database. It represents the physical connection to the data source and must be open before executing commands (like SqlComman…
Short answer: Strongly Typed DataSet: A DataSet that is generated from an XSD (XML Schema Definition) file, which defines the structure of the data (tables, columns, relationships). Explain a bit more It provides type sa…
Short answer: A transaction in ADO.NET is a sequence of database operations that are executed as a single unit. If one operation fails, all previous operations are rolled back. You can manage transactions using the SqlTr…
Short answer: way to safely and securely inject data into queries, reducing the risk of SQL injection ttacks. Explain a bit more In ADO.NET, you handle parameters using the Parameters collection of a SqlCommand object. w…
Short answer: Parameters are used to pass values to SQL commands or stored procedures. They provide a way to safely and securely inject data into queries, reducing the risk of SQL injection attacks. In ADO.NET, you handl…
Short answer: snapshot of the data and remains unchanged even if the data in the database changes during the operation. It is slower and consumes more memory compared to forward-only cursor. Real-world example (ShopNest)…
Short answer: Forward-only cursor: A cursor that allows you to read rows sequentially in a forward direction only. Explain a bit more It is fast and lightweight, but you cannot go back to previous rows. Static cursor: A…
Short answer: An ADO.NET DataProvider is a set of classes used to interact with different types of data sources (such as SQL Server, Oracle, etc.). It provides methods for opening connections, executing commands, and ret…
Short answer: llows you to define the name, data type, size, and value of a parameter. Explain a bit more SqlParameter is used to protect against SQL injection and to pass data to SQL queries safely. llows you to define…
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: ADO.NET (Active Data Objects .NET) is a data access technology in the .NET framework that enables applications to interact with databases and other data sources.
It provides a set of classes for connecting to databases, retrieving data, manipulating data, and updating data. ADO.NET is designed for disconnected data access, meaning that data can be retrieved, modified, and worked with without maintaining an ongoing connection to the database. Real-Time Example: In a C# application, ADO.NET is used to retrieve a list of products from a database and display it in a UI like a GridView. The data is fetched from the database, stored in a DataSet or DataTable, and then bound to the UI controls.
ShopNest’s reporting job still uses ADO.NET for a heavy SQL query where raw performance and stored procedures matter more than EF convenience.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: And forth between rows (using DataRow and DataColumn). DataReader: A DataReader is a forward-only, read-only data cursor.
For large order exports, ShopNest uses SqlDataReader (forward-only, fast). DataSet is heavier and mainly for disconnected editing scenarios.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: DataSet: It is a disconnected, in-memory data structure that can hold multiple tables.
It can also be updated and later written back to the database. You can move back and forth between rows (using DataRow and DataColumn). DataReader: A DataReader is a forward-only, read-only data cursor. It provides faster, streaming access to the data from the database but doesn’t allow modifications. It maintains an open connection while reading data. Example: DataSet: If you're working on a report with multiple tables, such as Customers, Orders, and Products, you'd use a DataSet. DataReader: If you're fetching customer details one by one for a quick operation, a DataReader would be used.
For large order exports, ShopNest uses SqlDataReader (forward-only, fast). DataSet is heavier and mainly for disconnected editing scenarios.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: A DataAdapter serves as a bridge between a DataSet/DataTable and the database. It is used to fill a DataSet with data and to update changes made in the DataSet back to the database.
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Customers", connection); DataSet dataset = new DataSet(); adapter.Fill(dataset, "Customers"); // Fills DataSet with data from the Customers table
ShopNest’s reporting job still uses ADO.NET for a heavy SQL query where raw performance and stored procedures matter more than EF convenience.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: The Command object is used to execute SQL queries or stored procedures against a database. It encapsulates the SQL statement or stored procedure and returns results.
SqlCommand command = new SqlCommand("SELECT * FROM Customers", connection); SqlDataReader reader = command.ExecuteReader();
Always pass order ids with parameters: cmd.Parameters.AddWithValue("@id", orderId). Never concatenate user input into SQL.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: ExecuteNonQuery: Executes SQL commands that do not return data (e.g., INSERT, UPDATE, DELETE).
command.ExecuteNonQuery(); (used to insert a record). ExecuteReader: Executes SQL commands that return rows (e.g., SELECT queries). It returns a DataReader. Example: command.ExecuteReader(); (used to select records). ExecuteScalar: Executes SQL commands and returns a single value (e.g., a single cell of data). Example: command.ExecuteScalar(); (used for retrieving the count or aggregate values).
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: The ConnectionString contains information required to connect to the database, such as the database server, database name, credentials, and other configurations. Example: string connectionString = "Data Source=server_name;Initial
Catalog=database_name;User ID=user_name;Password=password;";
ShopNest opens a SqlConnection only for the query, then disposes it (using). Connection pooling reuses physical connections automatically.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: SqlConnection: Used specifically for connecting to SQL Server databases. OleDbConnection: A more general connection class that can connect to a variety of data sources, such as MS Access, Excel, Oracle, etc.
Use SqlConnection for SQL Server: SqlConnection sqlConnection = new SqlConnection(connectionString); Use OleDbConnection for Access or other databases: OleDbConnection oleDbConnection = new OleDbConnection(connectionString);
ShopNest opens a SqlConnection only for the query, then disposes it (using). Connection pooling reuses physical connections automatically.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: SQLCommand: A SQL command is a string of SQL code (like SELECT, INSERT, etc.) that is executed directly against the database. Stored Procedure: A precompiled collection of SQL statements that can be executed as a unit. It can contain more complex logic, including control-of-flow and error handling.
SQL Command: SELECT * FROM Customers; Stored Procedure: EXEC GetCustomerDetails;
Always pass order ids with parameters: cmd.Parameters.AddWithValue("@id", orderId). Never concatenate user input into SQL.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: Connection Pooling allows multiple applications or threads to reuse existing database connections instead of opening a new connection each time. It improves performance by reducing the overhead of opening and closing connections repeatedly. Example: When using SQL Server, the connection pool automatically manages the reuse of connections.
ShopNest opens a SqlConnection only for the query, then disposes it (using). Connection pooling reuses physical connections automatically.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: The CommandTimeout property specifies the amount of time (in seconds) before a command is considered to have timed out. If the command execution takes longer than the specified time, an error is raised. Example: SqlCommand command = new SqlCommand("SELECT * FROM Customers", connection); command.CommandTimeout = 30; // Timeout after 30 seconds
Intermediate ADO.NET Questions
Always pass order ids with parameters: cmd.Parameters.AddWithValue("@id", orderId). Never concatenate user input into SQL.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: The SqlDataAdapter serves as a bridge between a DataSet (or DataTable) and the database. It is responsible for:
ShopNest’s reporting job still uses ADO.NET for a heavy SQL query where raw performance and stored procedures matter more than EF convenience.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: mount of data quickly and do not need to modify the data.
It requires an open connection to the database and reads data sequentially, one row at a time. mount of data quickly and do not need to modify the data. It requires an open connection to the database and reads data sequentially, one row at a time. mount of data quickly and do not need to modify the data. It requires an open connection to the database and reads data sequentially, one row at a time. SqlCommand command = new SqlCommand("SELECT CustomerName FROM Customers", connection); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine(reader["CustomerName"]); } reader.Close(); mount of data quickly and do not need to modify the data. It requires an open connection to the database and reads data sequentially, one row at a time.
SqlCommand command = new SqlCommand("SELECT CustomerName FROM Customers", connection); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine(reader["CustomerName"]); } reader.Close();
For large order exports, ShopNest uses SqlDataReader (forward-only, fast). DataSet is heavier and mainly for disconnected editing scenarios.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: The SqlDataReader is used to retrieve data from the database in a forward-only and read-only manner. It is more efficient than a DataSet when you need to retrieve a large amount of data quickly and do not need to modify the data. It requires an open connection to the database and reads data sequentially, one row at a time.
SqlCommand command = new SqlCommand("SELECT CustomerName FROM Customers", connection); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine(reader["CustomerName"]); } reader.Close();
For large order exports, ShopNest uses SqlDataReader (forward-only, fast). DataSet is heavier and mainly for disconnected editing scenarios.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: dapter.Fill(dataset, "Customers"); // Fills the DataSet with data from the "Customers" table dapter.Fill(dataset, "Customers"); // Fills the DataSet with data from the "Customers" table dapter.Fill(dataset, "Customers"); // Fills the DataSet with data from the "Customers" table dapter.Fill(dataset, "Customers"); // Fills the DataSet with data from the…
ShopNest opens a SqlConnection only for the query, then disposes it (using). Connection pooling reuses physical connections automatically.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: DataSet is a collection of DataTable objects, and it can hold multiple tables and relationships between them.
It is used for handling disconnected data and can work offline, and it can also support complex structures, such as parent-child relationships. DataTable represents a single table in-memory and contains rows and columns. It can be used for simpler scenarios where only one table of data is needed. Example: DataSet: Holds multiple tables, such as Customers and Orders. DataTable: Holds data from a single table like Customers.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: The SqlConnection object is responsible for opening a connection to a SQL Server database. It represents the physical connection to the data source and must be open before executing commands (like SqlCommand) or reading data (using SqlDataReader or SqlDataAdapter).
SqlConnection connection = new SqlConnection(connectionString); connection.Open(); // Execute database commands connection.Close();
ShopNest opens a SqlConnection only for the query, then disposes it (using). Connection pooling reuses physical connections automatically.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: Strongly Typed DataSet: A DataSet that is generated from an XSD (XML Schema Definition) file, which defines the structure of the data (tables, columns, relationships).
It provides type safety and compile-time checking. Loosely Typed DataSet: A DataSet that does not have predefined schemas, meaning you access tables and columns by name at runtime. This offers flexibility but no compile-time checking. Example: Strongly Typed: You get intellisense and type safety when accessing columns. Loosely Typed: You need to access tables and columns by name as strings, without intellisense.
For large order exports, ShopNest uses SqlDataReader (forward-only, fast). DataSet is heavier and mainly for disconnected editing scenarios.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: A transaction in ADO.NET is a sequence of database operations that are executed as a single unit. If one operation fails, all previous operations are rolled back. You can manage transactions using the SqlTransaction object. Steps:
Placing an order updates stock and inserts the order row in one SqlTransaction—either both succeed or both roll back.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: way to safely and securely inject data into queries, reducing the risk of SQL injection ttacks.
In ADO.NET, you handle parameters using the Parameters collection of a SqlCommand object. way to safely and securely inject data into queries, reducing the risk of SQL injection ttacks. In ADO.NET, you handle parameters using the Parameters collection of a SqlCommand object. way to safely and securely inject data into queries, reducing the risk of SQL injection ttacks. In ADO.NET, you handle parameters using the Parameters collection of a SqlCommand object. SqlCommand command = new SqlCommand("SELECT * FROM Customers WHERE CustomerID = @CustomerID", connection); command.Parameters.AddWithValue("@CustomerID", customerId); way to safely and securely inject data into queries, reducing the risk of SQL injection ttacks. In ADO.NET, you handle parameters using the Parameters collection of a SqlCommand object.
SqlCommand command = new SqlCommand("SELECT * FROM Customers WHERE CustomerID = @CustomerID", connection); command.Parameters.AddWithValue("@CustomerID", customerId);
Always pass order ids with parameters: cmd.Parameters.AddWithValue("@id", orderId). Never concatenate user input into SQL.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: Parameters are used to pass values to SQL commands or stored procedures. They provide a way to safely and securely inject data into queries, reducing the risk of SQL injection attacks. In ADO.NET, you handle parameters using the Parameters collection of a SqlCommand object.
SqlCommand command = new SqlCommand("SELECT * FROM Customers WHERE CustomerID = @CustomerID", connection); command.Parameters.AddWithValue("@CustomerID", customerId);
Always pass order ids with parameters: cmd.Parameters.AddWithValue("@id", orderId). Never concatenate user input into SQL.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: snapshot of the data and remains unchanged even if the data in the database changes during the operation. It is slower and consumes more memory compared to forward-only cursor.
ShopNest’s reporting job still uses ADO.NET for a heavy SQL query where raw performance and stored procedures matter more than EF convenience.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: Forward-only cursor: A cursor that allows you to read rows sequentially in a forward direction only.
It is fast and lightweight, but you cannot go back to previous rows. Static cursor: A cursor that allows both forward and backward navigation. It provides a snapshot of the data and remains unchanged even if the data in the database changes during the operation. It is slower and consumes more memory compared to a forward-only cursor.
ShopNest’s reporting job still uses ADO.NET for a heavy SQL query where raw performance and stored procedures matter more than EF convenience.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: An ADO.NET DataProvider is a set of classes used to interact with different types of data sources (such as SQL Server, Oracle, etc.). It provides methods for opening connections, executing commands, and retrieving data. The main types of DataProviders are: SqlClient (for SQL Server) OleDb (for OLE DB-compatible data sources) Odbc (for ODBC-compatible data sources) Oracle (for Oracle databases)
ShopNest’s reporting job still uses ADO.NET for a heavy SQL query where raw performance and stored procedures matter more than EF convenience.
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: llows you to define the name, data type, size, and value of a parameter.
SqlParameter is used to protect against SQL injection and to pass data to SQL queries safely. llows you to define the name, data type, size, and value of a parameter. SqlParameter is used to protect against SQL injection and to pass data to SQL queries safely. llows you to define the name, data type, size, and value of a parameter. SqlParameter is used to protect against SQL injection and to pass data to SQL queries safely. SqlCommand command = new SqlCommand("SELECT * FROM Customers WHERE CustomerID = @CustomerID", connection); SqlParameter parameter = new SqlParameter("@CustomerID", SqlDbType.Int); parameter.Value = customerId; command.Parameters.Add(parameter); llows you to define the name, data type, size, and value of a parameter. SqlParameter is used to protect against SQL injection and to pass data to SQL queries safely.
SqlCommand command = new SqlCommand("SELECT * FROM Customers WHERE CustomerID = @CustomerID", connection); SqlParameter parameter = new SqlParameter("@CustomerID", SqlDbType.Int); parameter.Value = customerId; command.Parameters.Add(parameter);
Always pass order ids with parameters: cmd.Parameters.AddWithValue("@id", orderId). Never concatenate user input into SQL.
Install Toolliyo like an app Free
Home-screen access to tutorials, coding practice & career tools — no app store needed.
On iPhone/iPad: tap Share then Add to Home Screen.