Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Short answer: Example: OracleCommand command = new OracleCommand("SELECT * FROM Customers", connection); Example code Example: OracleCommand command = new OracleCommand("SELECT * FROM Customers", conn…
Short answer: DataSet: A collection of DataTables and relationships that represent the data in a disconnected mode. Explain a bit more A DataSet can hold multiple DataTables, each corresponding to a database table or vie…
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: And close the connection when done. SqlConnection connection = new SqlConnection(connectionString); connection.Open(); nd close the connection when done. Example code SqlConnection connection = new SqlConne…
Short answer: The Connection object represents a connection to a specific data source (e.g., SQL Server). It is used to establish and manage the connection to the database, execute queries, and close the connection when…
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: Disconnected model: ADO.NET uses a disconnected model (DataSet/DataTable), which allows applications to work offline, reducing the load on the database. Better performance: ADO.NET allows better resource ma…
Short answer: examples. DataSet: Works in a disconnected mode and holds multiple tables and relationships. You can navigate and manipulate the data offline. Example: Use a DataSet to hold customer and order data for offl…
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: To update the database using a DataSet: Real-world example (ShopNest) For large order exports, ShopNest uses SqlDataReader (forward-only, fast). DataSet is heavier and mainly for disconnected editing scenar…
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: The Fill() method of the DataAdapter is used to populate a DataSet or DataTable with data from the database. It executes the SELECT query defined in the DataAdapter and fills the specified DataSet or DataTa…
Short answer: In ADO.NET, database connections are managed using the Connection object, such as SqlConnection for SQL Server. The process involves: Real-world example (ShopNest) ShopNest opens a SqlConnection only for th…
Short answer: To execute a stored procedure using ADO.NET: Real-world example (ShopNest) ShopNest’s reporting job still uses ADO.NET for a heavy SQL query where raw performance and stored procedures matter more than EF c…
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…
ADO.NET ADO.NET Core Tutorial · ADO.NET
Short answer: Example: OracleCommand command = new OracleCommand("SELECT * FROM Customers", connection);
Example: OracleCommand command = new OracleCommand("SELECT * FROM Customers", connection);
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: DataSet: A collection of DataTables and relationships that represent the data in a disconnected mode.
A DataSet can hold multiple DataTables, each corresponding to a database table or view. It's also capable of handling data relationships, such as parent-child relationships. Example: A DataSet might hold a DataTable for customers and another for their orders. DataTable: A single table of in-memory data, which is part of a DataSet. It represents one database table and allows you to work with the data offline. Example: A DataTable for the Customers table that contains rows representing each customer.
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: 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: And close the connection when done. SqlConnection connection = new SqlConnection(connectionString); connection.Open(); nd close the connection when done.
SqlConnection connection = new SqlConnection(connectionString); connection.Open(); And close the connection when done. Example: SqlConnection connection = new SqlConnection(connectionString); connection.Open(); nd close the connection when done. Example: SqlConnection connection = new SqlConnection(connectionString); connection.Open();
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 Connection object represents a connection to a specific data source (e.g., SQL Server). It is used to establish and manage the connection to the database, execute queries, and close the connection when done.
SqlConnection connection = new SqlConnection(connectionString); connection.Open();
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: Disconnected model: ADO.NET uses a disconnected model (DataSet/DataTable), which allows applications to work offline, reducing the load on the database. Better performance: ADO.NET allows better resource management and can handle large data volumes efficiently. XML support: ADO.NET has built-in support for XML, making it easier to work with XML data.
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: examples. DataSet: Works in a disconnected mode and holds multiple tables and relationships. You can navigate and manipulate the data offline. Example: Use a DataSet to hold customer and order data for offline processing. DataReader: A forward-only, read-only cursor that requires an open connection to the database. It is faster for reading large amounts of data in a streaming manner. Example: Use DataReader when…
fetching records to display in a report or grid in a single-pass, forward-only manner.
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 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: To update the database using a DataSet:
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: 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: The Fill() method of the DataAdapter is used to populate a DataSet or DataTable with data from the database. It executes the SELECT query defined in the DataAdapter and fills the specified DataSet or DataTable with the results.
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Customers", connection); DataSet dataset = new DataSet(); adapter.Fill(dataset, "Customers"); // Fills the 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: In ADO.NET, database connections are managed using the Connection object, such as SqlConnection for SQL Server. The process involves:
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: To execute a stored procedure using ADO.NET:
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: 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.