Câu hỏi phỏng vấn ADO.NET

Hãy xem các câu hỏi chúng tôi đã tổng hợp và cùng ôn luyện lại nhé!

Để tạo kết nối với cơ sở dữ liệu bằng ADO.NET, bạn cần thực hiện các bước sau:

  1. Import các namespace cần thiết:

    using System.Data.SqlClient;  // Nếu sử dụng SQL Server
    using System.Data.OleDb;      // Nếu sử dụng OleDb
    using System.Data.Odbc;       // Nếu sử dụng Odbc
  2. Xây dựng chuỗi kết nối cơ sở dữ liệu (connection string):

    string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";

    Trong đó, myServerAddress là địa chỉ máy chủ cơ sở dữ liệu, myDataBase là tên cơ sở dữ liệu, myUsernamemyPassword là thông tin đăng nhập vào cơ sở dữ liệu.

  3. Tạo đối tượng kết nối:

    SqlConnection connection = new SqlConnection(connectionString);  // Nếu sử dụng SQL Server
    OleDbConnection connection = new OleDbConnection(connectionString);      // Nếu sử dụng OleDb
    OdbcConnection connection = new OdbcConnection(connectionString);       // Nếu sử dụng Odbc
  4. Mở kết nối:

    connection.Open();

Sau khi kết nối thành công, bạn có thể thực hiện các thao tác như truy vấn dữ liệu, cập nhật dữ liệu, thêm, sửa, xóa dữ liệu trong cơ sở dữ liệu.

ADO.NET và OLEDB là hai công nghệ trong ADO.NET được sử dụng để làm việc với cơ sở dữ liệu. Dưới đây là sự khác nhau giữa chúng:

  1. Mô hình lập trình: ADO.NET sử dụng mô hình lập trình không liên quan đến ngôn ngữ (language-neutral programming model) trong khi OLEDB sử dụng mô hình COM.

  2. Tích hợp với ngôn ngữ: ADO.NET tích hợp tốt với .NET Framework và được sử dụng chủ yếu trong các ứng dụng viết bằng ngôn ngữ C# hoặc VB.NET. Trong khi đó, OLEDB không được tích hợp sẵn trong .NET Framework và được sử dụng chủ yếu trong các ứng dụng viết bằng ngôn ngữ C++ hoặc VB6.

  3. Kiến trúc: ADO.NET sử dụng mô hình tương tác dựa trên DataSet. Dữ liệu từ cơ sở dữ liệu sẽ được lưu trữ trong các đối tượng DataSet và có thể thao tác trên đó một cách dễ dàng. Trong khi đó, OLEDB sử dụng mô hình tương tác dựa trên recordset để làm việc với dữ liệu.

  4. Hiệu suất: ADO.NET thường được coi là có hiệu suất cao hơn so với OLEDB vì sử dụng các đối tượng như DataReader và DataSet để thao tác với cơ sở dữ liệu. OLEDB sử dụng recordset làm đối tượng chính để lấy dữ liệu từ cơ sở dữ liệu, do đó có thể gây ra tốn kém tài nguyên và chậm hơn so với ADO.NET.

  5. Hỗ trợ cơ sở dữ liệu: ADO.NET hỗ trợ các loại cơ sở dữ liệu khác nhau thông qua các Data Provider như SQL Server, MySQL, Oracle, và OLEDB. OLEDB hỗ trợ các cơ sở dữ liệu ODBC và dựa trên ODBC drivers, do đó có thể được sử dụng với nhiều loại cơ sở dữ liệu khác nhau.

Để thực thi một truy vấn SQL đơn giản bằng ADO.NET, bạn có thể sử dụng các bước sau:

  1. Tạo kết nối đến cơ sở dữ liệu bằng SqlConnection:

    string connectionString = "Data Source=myServerAddress;Initial Catalog=myDatabase;User ID=myUsername;Password=myPassword";
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
    connection.Open();
    
    // Thực thi truy vấn SQL
    }
  2. Tạo một SqlCommand với truy vấn SQL cần thực thi và SqlConnection đã tạo:

    string query = "SELECT * FROM MyTable"; // Truy vấn SQL đơn giản
    using (SqlCommand command = new SqlCommand(query, connection))
    {
    // Thực thi truy vấn SQL và nhận dữ liệu
    }
  3. Sử dụng SqlDataAdapter để thực hiện truy vấn và lấy dữ liệu từ kết quả truy vấn (nếu có):

    using (SqlDataAdapter adapter = new SqlDataAdapter(command))
    {
    DataTable dataTable = new DataTable();
    adapter.Fill(dataTable);
    
    // Sử dụng dữ liệu
    }
  4. Đóng kết nối và giải phóng tài nguyên:

    connection.Close();

Lưu ý rằng trong ví dụ trên, truy vấn SQL đơn giản là "SELECT * FROM MyTable". Bạn có thể thay đổi truy vấn SQL để phù hợp với yêu cầu của mình.

Trong ADO.NET, các ngoại lệ có thể được xử lý theo các cách sau:

  1. Sử dụng các khối try-catch: Bạn có thể bao bọc các phần mã có thể tạo ra ngoại lệ trong khối try-catch. Trong khối catch, bạn có thể xử lý ngoại lệ bằng cách hiển thị thông báo lỗi cho người dùng hoặc thực hiện các hành động phù hợp.

Ví dụ:

try
{
    // Các phần mã có thể gây ra ngoại lệ
}
catch (Exception ex)
{
    // Xử lý ngoại lệ
}
  1. Sử dụng đối tượng Exception: Khi một ngoại lệ xảy ra, ADO.NET tạo một đối tượng Exception tương ứng. Bạn có thể sử dụng các thuộc tính của đối tượng Exception như Message để lấy thông tin về ngoại lệ.

Ví dụ:

try
{
    // Các phần mã có thể gây ra ngoại lệ
}
catch (Exception ex)
{
    Console.WriteLine("Lỗi: " + ex.Message);
}
  1. Sử dụng câu lệnh throw: Trong trường hợp bạn muốn ném một ngoại lệ từ khối catch để thông báo cho phần mã khác, bạn có thể sử dụng câu lệnh throw.

Ví dụ:

try
{
    // Các phần mã có thể gây ra ngoại lệ
}
catch (Exception ex)
{
    throw new Exception("Đã xảy ra lỗi trong quá trình xử lý dữ liệu.", ex);
}

Lưu ý: Trong các ứng dụng thực tế, xử lý ngoại lệ trong ADO.NET cần được thực hiện cẩn thận để đảm bảo bảo mật và tránh rò rỉ thông tin quan trọng.

Có vài cách sử dụng các tham số trong truy vấn ADO.NET:

  1. Sử dụng SqlParameter: Đây là cách phổ biến nhất để sử dụng các tham số trong truy vấn ADO.NET. Bạn có thể tạo ra đối tượng SqlParameter và chỉ định tên tham số, kiểu dữ liệu, giá trị và các thuộc tính khác. Sau đó, bạn có thể thêm tham số vào SqlCommand và sử dụng nó trong truy vấn.

Ví dụ:

SqlCommand command = new SqlCommand("SELECT * FROM Customers WHERE Country = @Country", connection);
command.Parameters.AddWithValue("@Country", "USA");
  1. Sử dụng thuộc tính Parameters của SqlCommand: Bạn có thể sử dụng thuộc tính Parameters của SqlCommand để thêm và quản lý các tham số trong truy vấn. Bạn có thể thêm các tham số bằng cách gọi phương thức Add với tên tham số và giá trị tương ứng.

Ví dụ:

SqlCommand command = new SqlCommand("SELECT * FROM Customers WHERE Country = @Country", connection);
command.Parameters.Add("@Country", SqlDbType.NVarChar, 100).Value = "USA";
  1. Sử dụng các phương thức khác của SqlCommand: SqlCommand cung cấp nhiều phương thức khác nhau để thêm tham số vào truy vấn. Ví dụ, bạn có thể sử dụng phương thức AddWithValue để thêm tham số với giá trị được chỉ định.

Ví dụ:

SqlCommand command = new SqlCommand("SELECT * FROM Customers WHERE Country = @Country", connection);
command.Parameters.AddWithValue("@Country", "USA");

Lưu ý rằng cách sử dụng tham số trong truy vấn ADO.NET giúp tránh các vấn đề bảo mật như tấn công SQL injection và tăng hiệu suất truy vấn.

DataReader và DataAdapter là hai thành phần chính trong ADO.NET để thực hiện truy xuất và thao tác dữ liệu với cơ sở dữ liệu.

DataReader là một thành phần chỉ đọc dữ liệu chỉ qua một lần từ cơ sở dữ liệu. Khi sử dụng DataReader, truy vấn SQL được thực hiện để truy xuất dữ liệu từ cơ sở dữ liệu và dữ liệu được trả về theo từng hàng (row) một. DataReader nhanh hơn và tiết kiệm bộ nhớ hơn so với DataAdapter vì nó không đọc toàn bộ dữ liệu vào bộ nhớ.

DataAdapter là một thành phần linh hoạt hơn và có khả năng thực hiện các thao tác đọc, ghi, cập nhật dữ liệu giữa ứng dụng và cơ sở dữ liệu. DataAdapter sử dụng DataSet và DataTable để lưu dữ liệu trung gian, tức là chứa dữ liệu trong bộ nhớ của ứng dụng. DataAdapter thực hiện các truy vấn SQL để lấy, cập nhật, chèn hoặc xóa dữ liệu và cập nhật dữ liệu giữa ứng dụng và cơ sở dữ liệu.

DataReader thích hợp sử dụng khi cần đọc một lượng lớn dữ liệu để thực hiện các phân tích hoặc tính toán. DataAdapter thích hợp sử dụng khi cần thực hiện nhiều thao tác dữ liệu như đọc, ghi, cập nhật, và làm việc với dữ liệu offline trong DataSet.

Trong ADO.NET, bạn có thể sử dụng Transaction để thực hiện một nhóm các câu lệnh SQL như một transaction duy nhất. ADO.NET hỗ trợ hai loại transaction: Transaction Local và Transaction Distributed.

  1. Transaction Local: a. Bắt đầu một transaction: Bạn có thể bắt đầu một transaction bằng cách tạo một đối tượng SqlTransaction hoặc OleDbTransaction từ đối tượng kết nối tương ứng và gọi phương thức BeginTransaction().

    SqlConnection connection = new SqlConnection(connectionString);
    connection.Open();
    SqlTransaction transaction = connection.BeginTransaction();

    b. Thực hiện các câu lệnh SQL trong transaction: Bạn có thể sử dụng một đối tượng SqlCommand hoặc OleDbCommand để thực thi các câu lệnh SQL trong transaction. Để thông báo rằng các câu lệnh được thực thi trong transaction, bạn cần chỉ định đối tượng transaction cho đối tượng command bằng cách gọi command.Transaction = transaction.

    SqlCommand command = new SqlCommand(sql, connection);
    command.Transaction = transaction;
    command.ExecuteNonQuery();

    c. Hoàn tất hoặc hủy bỏ transaction: Sau khi thực hiện các câu lệnh SQL, bạn có thể hoàn tất transaction bằng cách gọi transaction.Commit(). Nếu xảy ra lỗi hoặc cần hủy bỏ transaction, bạn có thể gọi transaction.Rollback().

    transaction.Commit();
    // hoặc
    transaction.Rollback();
  2. Transaction Distributed: Nếu bạn đang sử dụng các đối tượng kết nối khác nhau và muốn thực thi một transaction trên các kết nối này, bạn có thể sử dụng transaction distributed. Để sử dụng transaction distributed, bạn cần sử dụng một transaction coordinator như TransactionScope class.

    using (TransactionScope scope = new TransactionScope())
    {
       // Các câu lệnh SQL được thực thi trong transaction
       ...
       // Commit transaction
       scope.Complete();
    }

Lưu ý rằng tùy thuộc vào loại cơ sở dữ liệu mà bạn sử dụng (SQL Server, Oracle, MySQL, v.v.), cú pháp sử dụng transaction có thể khác nhau.

Để lấy dữ liệu từ một Stored Procedure sử dụng ADO.NET, bạn cần thực hiện các bước sau:

  1. Tạo một kết nối đến cơ sở dữ liệu bằng cách sử dụng lớp SqlConnection. Ví dụ:
string connectionString = "Your connection string";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    // Mở kết nối
    connection.Open();

    // Tạo một đối tượng SqlCommand để thực thi Stored Procedure
    using (SqlCommand command = new SqlCommand("Tên Stored Procedure", connection))
    {
        command.CommandType = CommandType.StoredProcedure;

        // (Tùy chọn) Đưa các tham số vào Stored Procedure (nếu có)
        command.Parameters.AddWithValue("@Param1", value1);
        command.Parameters.AddWithValue("@Param2", value2);

        // Tạo một đối tượng SqlDataReader để đọc dữ liệu từ Stored Procedure
        using (SqlDataReader reader = command.ExecuteReader())
        {
            // Đọc từng dòng dữ liệu
            while (reader.Read())
            {
                // Lấy các giá trị từ mỗi cột bằng cách sử dụng chỉ số hoặc tên cột
                var column1Value = reader["ColumnName1"];
                var column2Value = reader.GetInt32(reader.GetOrdinal("ColumnName2"));

                // Xử lý dữ liệu
                // ...
            }
        }
    }
}

Trong code trên:

  • connectionString là chuỗi kết nối đến cơ sở dữ liệu của bạn.
  • Tên Stored Procedure là tên của Stored Procedure cần gọi.
  • @Param1, @Param2 là các tham số (nếu có) của Stored Procedure.
  • ColumnName1, ColumnName2 là tên các cột trong kết quả trả về của Stored Procedure.

Sau khi lấy dữ liệu từ Stored Procedure, bạn có thể xử lý nó theo nhu cầu của mình.

Dưới đây là một ví dụ về cách sử dụng ADO.NET trong ứng dụng Windows Form để thực hiện việc kết nối đến cơ sở dữ liệu SQL Server và thực hiện truy vấn dữ liệu:

  1. Đầu tiên, bạn cần thêm namespace cần thiết:

    using System.Data.SqlClient;
  2. Tạo một đối tượng SqlConnection để kết nối đến cơ sở dữ liệu SQL Server:

    string connectionString = "Data Source=(local);Initial Catalog=YourDatabase;Integrated Security=True";
    SqlConnection connection = new SqlConnection(connectionString);
  3. Mở kết nối đến cơ sở dữ liệu:

    connection.Open();
  4. Thực hiện truy vấn dữ liệu bằng cách tạo một đối tượng SqlCommand và thực hiện truy vấn:

    string query = "SELECT * FROM Customers";
    SqlCommand command = new SqlCommand(query, connection);
  5. Đọc dữ liệu từ đối tượng SqlDataReader và hiển thị nó trong ứng dụng Windows Form của bạn:

    using (SqlDataReader reader = command.ExecuteReader())
    {
    while (reader.Read())
    {
        string customerName = reader["CustomerName"].ToString();
        // Hiển thị dữ liệu trong ứng dụng Windows Form của bạn
    }
    }
  6. Sau khi hoàn thành công việc, đóng kết nối đến cơ sở dữ liệu:

    connection.Close();

Trên đây là một ví dụ cơ bản về cách sử dụng ADO.NET trong ứng dụng Windows Form. Bạn có thể mở rộng và tùy chỉnh nó để phù hợp với yêu cầu của ứng dụng của bạn.

ADO.NET là một thành phần của .NET Framework được sử dụng trong việc truy cập và quản lý các dữ liệu từ các nguồn khác nhau, chẳng hạn như cơ sở dữ liệu SQL Server, Oracle, MySQL, XML, etc. ADO.NET cung cấp các lớp và phương thức để thực hiện các thao tác liên quan đến cơ sở dữ liệu như kết nối tới cơ sở dữ liệu, truy vấn, cập nhật và xử lý dữ liệu. ADO.NET còn hỗ trợ các tính năng như tự động kiểm soát tại thời gian thiết kế, tải dữ liệu đồng thời, tự động duy trì và cập nhật dữ liệu, nâng cao hiệu suất và an ninh.

ADO.NET, còn được gọi là ActiveX Data Objects .NET, là một công nghệ được sử dụng để làm việc với dữ liệu trong ứng dụng .NET. Dưới đây là một số lý do tại sao nên sử dụng ADO.NET:

  1. Hiệu suất cao: ADO.NET được thiết kế để cung cấp hiệu suất cao trong việc truy xuất và xử lý dữ liệu. Nó sử dụng mô hình kết nối rõ ràng và cung cấp các phương thức tối ưu để làm việc với cơ sở dữ liệu.

  2. Đa nền tảng: ADO.NET hỗ trợ nhiều nhà cung cấp cơ sở dữ liệu khác nhau, bao gồm Microsoft SQL Server, Oracle, MySQL, và nhiều hơn nữa. Điều này cho phép bạn dễ dàng chuyển đổi giữa các hệ quản trị cơ sở dữ liệu mà không cần thay đổi mã nguồn.

  3. Khả năng tin cậy và bảo mật: ADO.NET cung cấp tính năng quản lý đơn giản và an toàn với việc sử dụng các đối tượng như Connection, Command, DataReader và DataSet để thực hiện các hoạt động liên quan đến cơ sở dữ liệu.

  4. Hỗ trợ dễ dàng cho ứng dụng phân tán: ADO.NET hỗ trợ hoạt động với cơ sở dữ liệu từ xa thông qua các giao thức như TCP/IP và HTTP. Điều này cho phép bạn xây dựng các ứng dụng phân tán và kết nối với cơ sở dữ liệu từ xa một cách dễ dàng.

  5. Hỗ trợ LINQ: ADO.NET cung cấp hỗ trợ tích hợp cho ngôn ngữ truy vấn LINQ (Language Integrated Query), cho phép bạn truy vấn dữ liệu từ cơ sở dữ liệu bằng cách sử dụng cú pháp tương tự như ngôn ngữ truy vấn của cơ sở dữ liệu.

Vì những lý do trên, ADO.NET được sử dụng rất phổ biến trong ứng dụng .NET để làm việc với cơ sở dữ liệu.

ADO.NET (ActiveX Data Objects .NET) là một công nghệ được sử dụng để kết nối và làm việc với các nguồn dữ liệu liên quan đến cơ sở dữ liệu trong môi trường .NET.

Các thành phần chính của ADO.NET bao gồm:

  1. Connection (Kết nối): Đây là thành phần dùng để thiết lập kết nối tới cơ sở dữ liệu. Kết nối có thể được thiết lập thông qua các đối tượng như SqlConnection (SQL Server), OleDbConnection (CSDL OLE DB), OdbcConnection (CSDL ODBC) hoặc OracleConnection (CSDL Oracle).

  2. Command (Lệnh): Đây là thành phần dùng để thực thi các truy vấn và câu lệnh tới cơ sở dữ liệu. Có các đối tượng tương ứng như SqlCommand, OleDbCommand, OdbcCommand và OracleCommand để thực hiện các lệnh SQL hoặc câu lệnh cơ sở dữ liệu khác.

  3. DataReader: Đây là thành phần dùng để đọc dữ liệu từ cơ sở dữ liệu. DataReader cung cấp một cách nhanh chóng và hiệu quả để truy xuất dữ liệu từ cơ sở dữ liệu thông qua các phương thức như Read() và GetString(). DataReader được hỗ trợ bởi các đối tượng như SqlDataReader, OleDbDataReader, OdbcDataReader và OracleDataReader.

  4. DataAdapter: Đây là thành phần dùng để truyền dữ liệu giữa cơ sở dữ liệu và DataSet. DataAdapter được sử dụng để thực hiện các hoạt động như lấy dữ liệu từ cơ sở dữ liệu, cập nhật dữ liệu trong cơ sở dữ liệu và đồng bộ dữ liệu giữa DataSet và cơ sở dữ liệu. Có các đối tượng tương ứng như SqlDataAdapter, OleDbDataAdapter, OdbcDataAdapter và OracleDataAdapter.

  5. DataSet: Đây là thành phần dùng để lưu trữ dữ liệu trong bộ nhớ tạm thời và làm việc với dữ liệu ngoại trừ cơ sở dữ liệu. DataSet là một cấu trúc dữ liệu phẳng và không phụ thuộc vào hệ quản trị cơ sở dữ liệu cụ thể. Nó cung cấp các đối tượng như DataTable (bảng dữ liệu), DataRow (dòng dữ liệu) và DataColumn (cột dữ liệu) để làm việc với dữ liệu.

Các thành phần trên là những thành phần chính của ADO.NET và được sử dụng để tạo kết nối, truy vấn và làm việc với dữ liệu trong môi trường .NET.

ADO.NET và OLE DB là hai công nghệ quan trọng trong việc làm việc với cơ sở dữ liệu trong ADO.NET. Dưới đây là một số điểm khác nhau giữa ADO.NET và OLE DB:

  1. Mô hình lập trình: ADO.NET được thiết kế lại hoàn toàn dựa trên .NET Framework và sử dụng các đối tượng như DataSet, DataReader và DataAdapter để làm việc với dữ liệu. Trong khi đó, OLE DB sử dụng một mô hình lập trình COM và giao diện IRowset.

  2. Khả năng linh hoạt: ADO.NET hỗ trợ nhiều loại cơ sở dữ liệu, bao gồm cả cơ sở dữ liệu quan hệ, cơ sở dữ liệu XML và các dịch vụ web. Trong khi đó, OLE DB chỉ hỗ trợ cơ sở dữ liệu quan hệ.

  3. Hiệu suất: ADO.NET được tối ưu hóa cho hiệu suất cao và sử dụng máy chủ SQL Server để thực thi các câu truy vấn trên cơ sở dữ liệu. Trong khi đó, OLE DB sẽ chạy trên máy khách và thực hiện trực tiếp các câu truy vấn trên cơ sở dữ liệu.

  4. Sử dụng tài nguyên: ADO.NET sử dụng các tài nguyên như DataSet để lưu trữ dữ liệu tạm thời và duy trì một kết nối mở với cơ sở dữ liệu. Trong khi đó, OLE DB sử dụng tài nguyên mạnh mẽ hơn như Recordset và Connection để duy trì kết nối và lưu trữ dữ liệu.

Tổng quan, ADO.NET là công nghệ được thiết kế lại hoàn toàn cho .NET Framework và mang lại nhiều lợi ích hơn so với OLE DB, như tính linh hoạt và hiệu suất cao hơn.

Để kết nối đến CSDL SQL Server trong ADO.NET, bạn cần sử dụng các đối tượng trong namespace System.Data.SqlClient. Dưới đây là các bước thực hiện:

  1. Tạo đối tượng SqlConnection: Đầu tiên, bạn cần tạo một đối tượng SqlConnection để kết nối đến CSDL SQL Server. Bạn cần cung cấp chuỗi kết nối (connection string) chứa thông tin về server, tên CSDL, tên đăng nhập, mật khẩu vv.
string connectionString = "Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password";

SqlConnection connection = new SqlConnection(connectionString);
  1. Mở kết nối: Sau khi tạo đối tượng SqlConnection, bạn cần mở kết nối bằng cách gọi phương thức Open().
connection.Open();
  1. Thực thi truy vấn: Bạn có thể sử dụng đối tượng SqlCommand để thực thi các truy vấn SQL.
string query = "SELECT * FROM your_table";
SqlCommand command = new SqlCommand(query, connection);
SqlDataReader reader = command.ExecuteReader();
  1. Xử lý kết quả: Dùng đối tượng SqlDataReader để lấy dữ liệu từ kết quả truy vấn.
while (reader.Read())
{
    // Lấy dữ liệu từ reader
}
  1. Đóng kết nối: Cuối cùng, sau khi hoàn tất công việc, bạn cần đóng kết nối bằng cách gọi phương thức Close().
reader.Close();
connection.Close();

Chú ý rằng bạn cần bắt và xử lý các ngoại lệ (exception) có thể xảy ra trong quá trình kết nối và thực hiện truy vấn.

Để thực hiện truy vấn SQL sử dụng ADO.NET, bạn có thể làm theo các bước sau:

  1. Tạo một kết nối đến cơ sở dữ liệu bằng cách sử dụng SqlConnection. Kết nối này cung cấp thông tin về cơ sở dữ liệu, chẳng hạn như chuỗi kết nối.

Ví dụ:

string connectionString = "Data Source=ten_server;Initial Catalog=ten_database;User Id=ten_user;Password=mat_khau";
SqlConnection connection = new SqlConnection(connectionString);
  1. Mở kết nối với cơ sở dữ liệu bằng cách sử dụng phương thức Open().

Ví dụ:

connection.Open();
  1. Tạo một SqlCommand object để chứa truy vấn SQL. Bạn có thể sử dụng các tham số để truyền giá trị vào truy vấn.

Ví dụ:

string sqlQuery = "SELECT * FROM Customers WHERE Country = @Country";
SqlCommand command = new SqlCommand(sqlQuery, connection);
command.Parameters.AddWithValue("@Country", "Vietnam");
  1. Thực hiện truy vấn bằng cách sử dụng ExecuteReader() để trả về một SqlDataReader object hoặc ExecuteNonQuery() để thực hiện truy vấn không trả về bất kỳ dữ liệu nào.

Ví dụ:

SqlDataReader reader = command.ExecuteReader();
  1. Đọc dữ liệu từ SqlDataReader bằng cách sử dụng các phương thức như Read() để di chuyển qua từng bản ghi và GetString(), GetInt32() để truy cập vào các cột.

Ví dụ:

while (reader.Read())
{
    string name = reader.GetString(0);
    int age = reader.GetInt32(1);
    Console.WriteLine("Name: {0}, Age: {1}", name, age);
}
  1. Đóng kết nối tới cơ sở dữ liệu bằng cách sử dụng phương thức Close().

Ví dụ:

connection.Close();

Lưu ý rằng trên cơ sở dữ liệu SQL Server, bạn cũng có thể sử dụng SqlDataAdapter và DataSet để thực hiện việc truy vấn dữ liệu.

Có hai cách để thực hiện transaction trong ADO.NET:

  1. Sử dụng lớp SqlTransaction: Đây là cách truyền thống để thực hiện transaction trong ADO.NET. Bạn có thể tạo một đối tượng SqlConnection, mở kết nối và bắt đầu một SqlTransaction từ đối tượng kết nối đó. Sau đó, bạn có thể thực hiện các câu lệnh SQL bên trong transaction bằng cách sử dụng một đối tượng SqlCommand và gọi Commit để lưu các thay đổi hoặc Rollback để hủy bỏ các thay đổi.

Ví dụ:

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    SqlTransaction transaction = connection.BeginTransaction();

    try
    {
        // Thực hiện các câu lệnh SQL bên trong transaction
        SqlCommand command1 = new SqlCommand("INSERT INTO table1 VALUES ...", connection);
        command1.Transaction = transaction;
        command1.ExecuteNonQuery();

        SqlCommand command2 = new SqlCommand("UPDATE table2 SET ...", connection);
        command2.Transaction = transaction;
        command2.ExecuteNonQuery();

        // Lưu thay đổi
        transaction.Commit();
    }
    catch (Exception ex)
    {
        // Xảy ra lỗi, hủy bỏ các thay đổi
        transaction.Rollback();
        Console.WriteLine(ex.Message);
    }
}
  1. Sử dụng TransactionScope: Đây là một cách tiện lợi hơn để thực hiện transaction trong ADO.NET từ phiên bản .NET Framework 2.0 trở lên. TransactionScope tự động quản lý transaction và cho phép chúng ta xác định điểm cuối cùng để lưu các thay đổi hoặc hủy bỏ các thay đổi. Mọi hành động trong TransactionScope sẽ được xoay quanh một transaction ẩn.

Ví dụ:

using (TransactionScope scope = new TransactionScope())
{
    try
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();

            // executing SQL commands within the transaction
            SqlCommand command1 = new SqlCommand("INSERT INTO table1 VALUES ...", connection);
            command1.ExecuteNonQuery();

            SqlCommand command2 = new SqlCommand("UPDATE table2 SET ...", connection);
            command2.ExecuteNonQuery();
        }

        // Saving changes
        scope.Complete();
    }
    catch (Exception ex)
    {
        // An error occurred, changes will be rolled back
        Console.WriteLine(ex.Message);
    }
}

Tổng hợp 500+ câu hỏi phỏng vấn ADO.NET - Phong-Van.com

1 week ago WEB Phỏng vấn giúp nhà tuyển dụng hiểu rõ hơn về kỹ năng, kinh nghiệm, và tính cách của ứng viên, đồng thời giúp ứng viên thể hiện năng lực và sự phù hợp với công ty. Tổng hợp …

280

Các câu hỏi phỏng vấn C#/.Net - Phỏng vấn IT - PhongvanIT.com

1 week ago WEB Các câu hỏi phỏng vấn C#/.Net

83

Câu hỏi phỏng vấn ADO.NET từ fresher đến senior dành cho lập …

1 week ago WEB dành cho lập trình viên. 6315 câu hỏi phỏng vấn Full-Stack, Coding & System Design Interview. Câu hỏi Global. Tải xuống Ebook cẩm nang phỏng vấn. Full-stack, Web & …

373

50 câu hỏi phỏng vấn thường gặp & cách trả lời hiệu quả

3 days ago WEB Phỏng vấn xin việc có thể là thử thách lớn, đặc biệt khi đối mặt với những câu hỏi hóc búa. Nhưng đừng lo, bài viết này sẽ giúp bạn chuẩn bị cho 50 câu hỏi phỏng vấn thường gặp …

143

TOP 20 câu hỏi thường gặp khi phỏng vấn mà ứng viên cần biết

6 days ago WEB Sep 21, 2024  · Dưới đây là TOP 20 câu hỏi thường gặp khi phỏng vấn mà AIA Việt Nam đã tổng hợp giúp bạn tự tin hơn trong cuộc phỏng vấn. 1. Hãy giới thiệu về bản thân bạn? …

50

TOP 23+ câu hỏi phỏng vấn .NET thường gặp - cập nhật 2023

4 days ago WEB Sep 22, 2023  · TOP 23+ câu hỏi phỏng vấn .NET thường gặp - cập nhật 2023. ITNavi 28 Sep 2023 5682. Những câu hỏi phỏng vấn .NET không chỉ giúp nhà tuyển dụng xác …

430

Top 15+ Câu Hỏi Phỏng Vấn .NET Phổ Biến Nhất 2023 - Glints

1 week ago WEB Jun 8, 2023  · Câu hỏi phỏng vấn .NET cho fresher. 1. . NET framework là gì? Đây là câu hỏi phỏng vấn .NET với mục tiêu kiểm tra hiểu biết cơ bản của bạn về Framework và …

283

ADONET là gì - KungFuTech

1 week ago WEB ADO.NET là một tập hợp các thư viện lớp được cung cấp bởi Microsoft, cho phép các ứng dụng tương tác với các nguồn dữ liệu như SQL Server, XML, MySQL, Oracle Database …

307

Top 54 câu hỏi phỏng vấn thường gặp và cách trả lời hay nhất

5 days ago WEB 4 days ago  · I. Các câu hỏi phỏng vấn giới thiệu bản thân. Mở đầu buổi phỏng vấn luôn là màn tìm hiểu, giới thiệu bản thân giữa nhà tuyển dụng và ứng viê. Đôi khi bạn luôn tự …

264

Top 10+ Câu Hỏi Phỏng Vấn C# Được Hỏi Nhiều Nhất

2 days ago WEB Jan 4, 2023  · C# là một ngôn ngữ lập trình khá phổ biến trong các công ty công nghệ. Trong quá trình tuyển chọn một lập trình viên xuất sắc, các câu hỏi phỏng vấn C# chắc …

485

Các câu hỏi phỏng vấn ADO.NET - Phỏng vấn IT - PhongvanIT.com

6 days ago WEB 1. ADO.NET là gì? 2. Ý nghĩa chính xác của phương pháp disconnected và connected trong ADO.NET là gì? 3. Các component của ADO.NET là gì? 4. Trình bày cấu trúc của …

270

Những Câu Hỏi Phỏng Vấn Với C# .NET Thường Gặp

5 days ago WEB Phương thức. Ý nghĩa. ToString () Trả về kiểu chuỗi của đối tượng (chuyển từ kiểu dữ liệu nào đó về kiểu chuỗi) GetHashCode () Trả về mã băm của đối tượng. Equals. So sánh …

83

Cauhoiphongvan.net top câu hỏi phỏng vấn mới chính xác nhất

6 days ago WEB Oct 3, 2023  · Sắp xếp bài viết hiển thị được đánh giá tích cực. Điểm mạnh và điểm yếu của bạn là gì? Câu trả lời phỏng vấn 2024. Câu hỏi phỏng vấn .net, trang web này cung cấp …

449

TOP 30 câu hỏi phỏng vấn thường gặp nhất ứng viên cần biết

1 day ago WEB Mar 18, 2024  · Chính vì vậy, việc chuẩn bị và tự trả lời các câu hỏi phỏng vấn sẽ giúp ứng viên tự tin hơn khi bước vào vòng phỏng vấn quan trọng. Những câu hỏi này có thể đã …

387

Top 5 câu hỏi phỏng vấn ASP.NET thường gặp và cách trả lời

1 week ago WEB Cứ tự tin mà xúc thôi à. Bắt đầu thôi anh em, điểm qua lần lượt 5 câu nha! 1. Giải thích mô hình MVC trong ASP.NET. Câu hỏi đầu tiên phỏng vấn ASP.NET tất nhiên là câu hỏi về …

442

Top 5 câu hỏi phỏng vấn .NET Developer - TopDev

1 day ago WEB Hữu dụng khi giá trị vào hàm ra hàm phát là thay đổi mãi mãi luôn, không cần quay lại giá trị cũ như pass by value. Không cần khởi tạo nên nhận vào một nhưng trả về 3,4,5. Hữu …

410

Top 32 câu hỏi phỏng vấn hay nhất dành cho nhà tuyển dụng

1 week ago WEB Câu hỏi phỏng vấn về khả năng học hỏi từ sai lầm. 23. Kể về một lần bạn phạm sai lầm trong quá khứ. Đây là một trong những những câu hỏi phỏng vấn hay nhất, giúp bạn …

411

100+ câu hỏi phỏng vấn tiếng Anh | Tip trả lời cực khéo

1 day ago WEB Sep 6, 2023  · 100+ câu hỏi và trả lời phỏng vấn bằng tiếng Anh thường gặp. Các câu hỏi phỏng vấn tiếng Anh dưới đây bao gồm trong mọi tình huống từ giới thiệu bản thân cho …

456

Top 30 Câu Hỏi Phỏng Vấn Thường Gặp Ứng Viên Cần Biết (Phần II)

1 week ago WEB 4. Nhóm câu hỏi phỏng vấn đánh giá sự phù hợp với công ty. Câu 19: Bạn mong đợi điều gì ở vị trí mới/ môi trường mới? Câu hỏi này, bạn có thể trả lời về những mong muốn …

337

50 câu hỏi phỏng vấn thường gặp và cách trả lời thuyết phục nhà …

1 week ago WEB Mar 7, 2017  · Ở bài trước, Morning Japan đã gợi ý 6 tips khi đi phỏng vấn để bạn tạo được ấn tượng đầu tiên thật tốt với nhà tuyển dụng. Còn sau đây sẽ là 50 câu hỏi phỏng vấn …

480

FAQs - Câu hỏi thường gặp về phỏng vấn?

Những câu hỏi thường gặp để phản ánh chính sách và quy trình cụ thể của bạn hoặc để phù hợp với mục đích cụ thể của phỏng vấn.

Phỏng vấn giúp nhà tuyển dụng hiểu rõ hơn về kỹ năng, kinh nghiệm, và tính cách của ứng viên, đồng thời giúp ứng viên thể hiện năng lực và sự phù hợp với công ty.

Chuẩn bị bằng cách nghiên cứu về công ty, làm rõ vị trí công việc, và thực hành trả lời các câu hỏi phỏng vấn phổ biến.

Phỏng vấn cá nhân, nhóm, kỹ thuật, và phỏng vấn hỏi đáp trực tiếp là những loại phổ biến.

Tập trung vào kỹ năng, kinh nghiệm, và động lực cá nhân, giúp bạn nổi bật trong mắt nhà tuyển dụng.

Giữ bình tĩnh, tập trung vào giải quyết vấn đề, và không ngần ngại đưa ra suy luận logic.

Kỹ năng mềm như giao tiếp, làm việc nhóm, và quản lý thời gian là quan trọng vì chúng thể hiện khả năng làm việc hiệu quả trong môi trường làm việc.

Gửi một email cảm ơn, thể hiện sự quan tâm và sẵn sàng hợp tác.

Tránh nói xấu về công ty cũ, không chuẩn bị kỹ, và tránh những câu trả lời quá cá nhân.

Thể hiện sự chắc chắn, tận tâm học hỏi, và sẵn sàng đối mặt với những thách thức mới.

Kỹ năng này cho thấy khả năng đưa ra giải pháp hiệu quả và tư duy logic, quan trọng trong nhiều ngành nghề.

Kiểm tra thiết bị, tạo không gian làm việc chuyên nghiệp, và đảm bảo kết nối internet ổn định.

Kỹ năng quản lý thời gian giúp đảm bảo công việc được hoàn thành đúng hạn và đồng thời tăng hiệu suất làm việc.