WorksheetsCâu Hỏi Ôn Tập ADO.NET
Total questions: 80
Worksheet time: 40mins
ADO là viết tắt của?
Active Data Object
Active Database Object
ActiveX Data Object
ActiveX Database Object
ADO.NET đóng vai trò gì trong ứng dụng CSDL?
Kết nối đến data source
Thực thi câu lệnh
Lấy dữ liệu, thao tác, lưu trữ
Cả 3 đáp án trên
___ framework gồm tập hợp các lớp được sử dụng để xử lý truy cập dữ liệu bằng cách kết nối với các cơ sở dữ liệu khác nhau như SQL Server, Access, Oracle…
Visual Studio
ASP.NET
C#.NET
ADO.NET
ADO.NET tập hợp của ?
Các lớp (Class)
Giao diện (Interface)
Cấu trúc (Structure)
Cả 3 đáp án trên
Kiến trúc ADO.NET bao gồm mấy phần chính?
1
2
3
4
Thành phần "Connection" đóng vai trò gì trong kiến trúc ADO.NET?
Cầu nối giữa CSDL với các đối tượng khác theo 2 chiều
Cầu nối giữa CSDL với các đối tượng khác theo 1 chiều
Thực hiện nhiệm vụ kết nối tới CSDL
Thực hiện câu lệnh, cho phép truy xuất, thêm, cập nhật, xóa dữ liệu
Thành phần "Command" đóng vai trò gì trong kiến trúc ADO.NET?
Cầu nối giữa CSDL với các đối tượng khác theo 2 chiều
Cầu nối giữa CSDL với các đối tượng khác theo 1 chiều
Thực hiện nhiệm vụ kết nối tới CSDL
Thực thi các truy vấn, câu lệnh, cho phép truy xuất, thêm, cập nhật, xóa dữ liệu
DataTable trong kiến trúc của ADO.NET. Chọn đáp án sai:
Thuộc thành phần dữ liệu trong kiến trúc ADO.NET
Là thành phần quản lý dữ liệu, bao gồm nhiều table
Là một thành phần trong DataSet, chứa dữ liệu của một bảng trong Dataset
Bao gồm tập hợp các columns, rows.
Sắp xếp các bước kết nối đến Database 1. Mở kết nối 2. Tạo đối tượng kết nối 3. Kiểm tra trạng thái của kết nối 4. Chọn .Net Data Provider 5. Đóng kết nối
A. 1 -> 4 -> 3 -> 2 -> 5
B. 2 -> 1 -> 3 -> 4 -> 5
C. 3 -> 1 -> 4 -> 2 -> 5
D. 4 -> 2 -> 1 -> 3 -> 5
Các phương thức bảo mật CSDL của SQL Server
Windows Authentication
SQL server Authentication
Mix mode: Windows Authentication, SQL server Authentication
Windows Authentication, Mix mode: Windows Authentication, SQL server Authentication
Dữ liệu được lưu trữ trong một cơ sở dữ liệu MS SQL Server, máy chủ tên Admin và cơ sở dữ liệu tên Monhoc. Để kết nối với Monhoc bằng cơ chế sử dụng xác thực Windows. Chuỗi kết nối nào sau đây là đúng
Data Source = Admin/SQLEXPRESS; Initial Catalog = Monhoc; Integrated Security = True
Data Source = Admin\SQLEXPRESS; Initial Catalog = Monhoc; Integrated Security = True
Data Source = Admin\SQLEXPRESS; Initial Catalog = Monhoc; Integrated Security = False
Tất cả đều đúng
Phương thức nào được sử dụng để mở kết nối với cơ sở dữ liệu trong ADO.NET?
Execute()
Close()
Open()
Connect()
Khi sử dụng phương thức để mở kết nối mới, bước nào sau đây KHÔNG phải là một bước thực hiện trong quá trình mở kết nối?
Thiết lập kênh vật lý (socket hoặc pipe)
Bắt tay với server
Phân tích chuỗi kết nối
Tự động đóng kết nối
Khi nào bạn phải sử dụng phương thức Close() trong ADO.NET?
Trước khi mở kết nối
Sau khi mở kết nối thành công và hoàn thành công việc với cơ sở dữ liệu
Trong khi phân tích chuỗi kết nối
Khi thiết lập kênh vật lý
Trong ADO.NET, chuỗi kết nối (connection string) chứa các thông tin nào?
Tên cơ sở dữ liệu, tên người dùng, mật khẩu, và thông tin máy chủ
Mã nguồn của cơ sở dữ liệu
Danh sách các bảng trong cơ sở dữ liệu
Kết quả của truy vấn SQL
Đối tượng nào trong ADO.NET dùng để quản lý và duy trì kết nối với cơ sở dữ liệu?
SqlCommand
SqlConnection
DataReader
DataSet
Tùy chọn nào bên dưới là đúng để tạo đối tượng kết nối với SQL Server?
SqlConnection con = new SqlConnection ("Data Source=ServerName; Initial Catalog=DatabaseName;Integrated Security=SSPI");
using (SqlConnection con = new SqlConnection("Data Source=ServerName; Initial Catalog=DatabaseName;Integrated Security=True")) {con.Open(); …}
SqlConnection con = new SqlConnection(); con.ConnectionString = ("Data Source=ServerName; Initial Catalog=DatabaseName;Integrated Security=True");
Tất cả đều đúng
Lớp SqlConnection nằm trong namespace nào:
System.Data.Connection
System.Data
System.Data.Sql
System.Data.SqlClient
Thuộc tính tối thiểu được yêu cầu để tạo chuỗi kết nối bằng đối tượng SqlConnection là gì?
(i) DataSource, Initial Catalog, Integrated Security=SSPI
(ii) Server, Database, Integrated Security=true
(iii) Server, Database, Userid=sa, Password=123
i
ii
i và ii
i và iii
sqlConn là một đối tượng của SqlConnection, các phương thức để mở và đóng kết nối trong ADO.NET là
sqlConn.Connect() và sqlConn.Dispose()
sqlConn.Connect() và sqlConn.Disconnect()
sqlConn.Open và sqlConn.Close()
Tất cả đều đúng
Chọn đối tượng dùng để liệt kê dữ liệu trong cơ sở dữ liệu?
(i) SqlConnection (ii) SqlDataAdapter (iii) SqlCommand (iv) DataTable
i ii iii
i iii
i ii iv
iii
Phương thức nào được sử dụng để kiểm tra trạng thái của kết nối trước khi thực hiện truy vấn trong ADO.NET?
IsConnected()
State()
Status()
ConnectionState()
Lớp nào sau đây không tồn tại trong namespace System.Data?
DataRow
DataTable
DataColumn
DataRecord
Để đóng một kết nối với cơ sở dữ liệu trong ADO.NET, phương thức nào được sử dụng?
End()
Dispose()
Close()
B hoặc C
Lớp nào trong ADO.NET được sử dụng để bắt và xử lý các ngoại lệ liên quan đến SQL Server?
SqlCommand
SqlException
SqlError
SqlDataAdapter
Giá trị CommandType nào là KHÔNG chính xác?
TableSchema
TableDirect
StoredProcedure
Text
Trong C#, cấu trúc nào sau đây được dùng để bắt và xử lý các ngoại lệ?
if/else
try/finally
do/loop
try/catch
Lớp Data.SqlClient được sử dụng khi cần truy xuất đến Hệ quản trị cơ sở dữ liệu
MS Access
MySQL
MS SQL Server
Oracle
Phương thức nào trong SqlCommand được sử dụng để thực thi một lệnh SQL mà không trả về dữ liệu?
ExecuteReader()
ExecuteNonQuery()
ExecuteScalar()
ExecuteXmlReader()
Thuộc tính nào của đối tượng SqlCommand dùng để chứa câu lệnh SQL?
CommandType
Connection
CommandText
Parameters
Dữ liệu được lưu trong MS SQL Server với tên server là M01 và cơ sở dữ liệu (CSDL) tên là DB01. Chúng ta cần đổ dữ liệu từ bảng TB01 trong CSDL vào DataGridView. Giả sử chúng ta có 02 đối tượng: SqlConnection tên conn và đối tượng SqlCommand là cmd. Đối tượng command sẽ được tạo như thế nào?
cmd.CommandType = CommandType.Text; cmd.Connection = conn; cmd.CommandText = "select * from TB01";
cmd.CommandType = Text; cmd.CommandConnection = conn; cmd.CommandText = "select * from TB01";
cmd.CommandType = Text; cmd.Connection = conn; cmd.CommandText = "select * from TB01";
cmd.CommandConnection = conn; cmd.Command.Text = "select * from TB01";
Thuộc tính nào sau đây không phải của đối tượng SqlCommand
CommandText
Connection
CommandType
State
Để thực thi nhiều câu lệnh Sql bằng DataReader thì
Thiết lập thuộc tính CommandText bằng chuỗi các câu lệnh sql phân tách nhau bằng dấu chấm phẩy
A. Thiết lập thuộc tính CommandType sang chế độ nhận nhiều kết qủa
Gọi phương thức ExecuteReader của đối tượng Command nhiều lần
Tất cả đều sai
Phương thức nào của SqlCommand được sử dụng để đọc nhiều bản ghi (trả về 1 bảng dữ liệu) từ kết quả truy vấn?
ExecuteReader()
ExecuteNonQuery()
ExecuteScalar()
BeginExecuteNonQuery()
Bạn cần truy vấn tổng số lượng bản ghi trong bảng employees, phương thức nào nên sử dụng?
ExecuteNonQuery()
ExecuteScalar()
ExecuteReader()
ExecuteXmlReader()
Phương thức nào của SqlCommand khi thực thi sẽ trả về số lượng bản ghi bị ảnh hưởng trong bảng dữ liệu?
ExecuteReader()
ExecuteNonQuery()
ExecuteScalar()
ExecuteXmlReader()
Thao tác nào trên dữ liệu không thể thực hiện bằng phương thức CRUDToTable
Đọc
Xóa
Sửa
Thêm
Cách nào dưới đây không phải là phương pháp hợp lệ để truy cập dữ liệu từ một cột trong SqlDataReader?
Truy cập theo tên cột.
Truy cập theo chỉ mục cột.
Truy cập qua phương thức GetXXX()
Truy cập thông qua hàm ExecuteNonQuery()
Phương thức nào trong SqlDataReader được sử dụng để lấy số lượng cột trong kết quả truy vấn?
GetValue()
ColumnCount()
GetColumns()
FieldCount
Cách nào dưới đây là đúng để truy cập tất cả các cột của một dòng trong SqlDataReader mà không cần biết tên hoặc thứ tự các cột?
Sử dụng thuộc tính FieldCount trong một vòng lặp for.
Truy cập từng cột bằng chỉ mục.
Truy cập từng cột bằng tên cột.
Sử dụng ExecuteScalar()
Chọn phát biểu đúng về đối tượng SqlCommand
Thuộc tính CommandName dùng để chỉ định tên của cơ sở dữ liệu dùng để truy vấn
Thuộc tính CommandText dùng để chỉ định tên stored procedure hoặc nội dung câu truy vấn.
Thuộc tính CommandType dùng để chỉ định kết quả trả về của câu truy vấn.
Tất cả đều đúng.
Phương thức ExecuteScalar() được sử dụng để làm gì?
Trả về giá trị đầu tiên của cột đầu tiên trong tập kết quả.
Trả về toàn bộ các dòng trong tập kết quả.
Thực thi một lệnh SQL mà không trả về dữ liệu.
Trả về một tập giá trị từ tất cả các
Khi nào nên sử dụng ExecuteScalar()?
Khi muốn lấy nhiều dòng dữ liệu từ một bảng.
Khi cần lấy một giá trị duy nhất từ cơ sở dữ liệu, chẳng hạn như kết quả của truy vấn COUNT() hoặc MAX().
Khi cần lấy dữ liệu từ nhiều bảng khác nhau.
Khi bạn chỉ cần thực thi câu lệnh SQL mà không trả về kết quả.
Sự khác biệt giữa ExecuteScalar() và ExecuteReader() là gì?
Không có sự khác biệt giữa hai phương thức này.
ExecuteScalar() trả về một tập kết quả, trong khi ExecuteReader() trả về một giá trị đơn.
ExecuteScalar() dùng để cập nhật dữ liệu, còn ExecuteReader() dùng để truy vấn dữ liệu.
ExecuteScalar() trả về một giá trị đơn, trong khi ExecuteReader() trả về một tập kết quả.
Nếu cần lấy tổng số tiền trong một cột từ bảng Orders, bạn sẽ sử dụng truy vấn SQL nào với ExecuteScalar()?
SELECT * FROM Orders
SELECT SUM(TotalAmount) FROM Orders
UPDATE Orders SET TotalAmount = 0
DELETE FROM Orders WHERE TotalAmount = 0
Nếu câu truy vấn ExecuteScalar() trả về một giá trị không phải là số nguyên, thì cần làm gì?
Không cần thực hiện thêm bước nào, ExecuteScalar() sẽ tự động chuyển đổi về int.
Bạn cần ép kiểu giá trị trả về sang kiểu dữ liệu phù hợp.
Luôn sử dụng ExecuteNonQuery() thay vì ExecuteScalar().
Không có cách nào để lấy giá trị không phải là số nguyên bằng ExecuteScalar().
Phương thức nào được sử dụng để đọc từng dòng dữ liệu từ IDataReader?
GetValue()
Read()
Execute()
Fetch()
Phương thức Read của đối tượng DataReader sẽ
Di chuyển và trỏ đến bản ghi kế tiếp, nếu hết bản ghi thì đưa ra ngoại lệ.
Di chuyển và trỏ đến bản ghi kế tiếp, nếu hết bản ghi thì quay về vị trí bắt đầu.
Di chuyển và trỏ đến bản ghi kế tiếp, nếu hết bản ghi thì đóng lại.
Di chuyển và trỏ đến bản ghi kế tiếp, nếu hết bản ghi thì trả về false.
Phương thức nào sau đây được dùng để kiểm tra xem một giá trị trong cột có phải là DBNull hay không?
IsNull()
IsDBNull()
CheckDBNull()
IsEmpty()
Phương thức nào sau đây trả về giá trị của một cột theo kiểu dữ liệu int ?
GetInt()
GetInteger()
GetInt32()
GetInt16()
Thuộc tính HasRows của IDataReader
Trả về true nếu IDataReader có chứa bất kỳ hàng nào, ngược lại là false
Trả về số cột trong tập kết quả.
Trả về số lượng bản ghi bị ảnh hưởng bởi câu lệnh SQL
Kiểm tra xem giá trị của một cột có phải là giá trị null trong cơ sở dữ liệu hay không
Thuộc tính nào của SqlDataReader cho biết một IDataReader có từ 01 dòng dữ liệu trở lên
HasRow
Rows
CountRow
HasRows
Chọn phát biểu đúng về đối tượng DataReader
Đối tượng DataReader là một đối tượng tiến-lùi (forward-backward)
Cung cấp môi trường ngắt kết nối
Đối tượng DataReader là một đối tượng chỉ đọc (read only)
Tất cả đều đúng
Khi sử dụng SqlParameter, thuộc tính nào sau đây được sử dụng để gán giá trị cho tham số?
SqlParameter.DataType
SqlParameter.Value
SqlParameter.ParameterName
SqlParameter.Length
Câu lệnh nào sau đây được sử dụng để thêm một tham số kiểu string vào đối tượng SqlCommand trong C#?
command.Parameters.Add("@Param", SqlDbType.String);
command.Parameters.AddWithValue("@Param", "Value");
command.Parameters.Add(new SqlParameter("@Param", SqlDbType.NVarChar) { Value = "Value" });
command.Parameters.AddParameter("@Param", SqlDbType.Text, "Value");
Truy vấn có tham số trong SQL giúp ngăn chặn hình thức tấn công nào sau đây?
XSS (Cross-site Scripting)
Phishing
Brute Force
SQL Injection
Kiểu dữ liệu nào được sử dụng để chỉ định kiểu dữ liệu của tham số SqlParameter
SqlDataType
SqlDbType
SqlParameterType
DataType
Thuộc tính nào dưới đây không phải là thuộc tính của SqlParameter?
ParameterName
Value
DbConnection
SqlDbType
Trong SQL Server, làm cách nào để tạo một Stored Procedure?
CREATE PROCEDURE procedure_name AS ...
MAKE PROCEDURE procedure_name AS ...
BUILD PROCEDURE procedure_name AS ...
SET PROCEDURE procedure_name AS ...
Stored Procedure có thể nhận tham số kiểu gì?
Chỉ tham số đầu vào (Input).
Chỉ tham số đầu ra (Output).
Cả tham số đầu vào và đầu ra (Input và Output).
Không thể nhận tham số.
Lệnh ExecuteReader() được sử dụng để làm gì trong khi gọi stored procedure?
Thực thi một stored procedure và trả về số dòng bị ảnh hưởng.
Thực thi một stored procedure và trả về giá trị đơn lẻ.
Thực thi một stored procedure và trả về nhiều dòng kết quả dưới dạng một đối tượng SqlDataReader.
Thực thi một stored procedure và trả về dữ liệu XML.
Tùy chọn nào phù hợp với phần … trong đoạn code sau: string StrSQL = "update bang1 set ten=@ten where ma=@ma"; SqlCommand Cmd = new SqlCommand(StrSQL); ………… Cmd.Parameters.AddWithValue("@ma", txtMa.Text); Cmd. Parameters.Add("ma", txtMa.Text); Cmd.Parameter.Add("@ma", txtMa.Text); Cmd.Parameters.Add("@ma", txtMa.Text);
Cmd.Parameters.AddWithValue("@ma", txtMa.Text);
Cmd.Parameters.Add("ma", txtMa.Text);
Cmd.Parameter.Add("@ma", txtMa.Text);
Cmd.Parameters.Add("@ma", txtMa.Text);
Để parameter nhận được giá trị trả về từ stored procedure cần sử dụng __________.
ParameterDirection.Output
ParameterDirection.InputOutput
StoredProcedure.Output
StoredProcedure.InputOutput
Phát biểu nào sau đây là đúng về Dataset:
Dataset có thể lưu tối đa 03 table trong cache
Dataset chỉ có thể lưu 01 table trong cache
Dataset không thể lưu bất kỳ table nào trong cache
Dataset có thể lưu nhiều table trong cache
Khi tạo một quan hệ giữa các bảng trong DataSet thì
(i) UniqueConstraint được thêm vào bản cha
(ii) ForeignKeyConstraint mặc định sẽ được thêm vào bảng con
i
ii
i ii
tất cả đều sai
Thuộc tính nào của DataTable được sử dụng để thiết lập khóa chính ?
PrimaryKey
Key
UniqueKey
Index
Câu nào sau đây đúng khi nói về DataRow
DataRow là một cột trong bảng.
DataRow chứa một dòng dữ liệu trong bảng.
DataRow chứa toàn bộ dữ liệu của DataSet.
DataRow là ràng buộc khóa ngoại của bảng.
Khi muốn đảm bảo rằng các giá trị trong một cột của bảng không được trùng lặp, sẽ sử dụng:
PrimaryKey
UniqueConstraint
ForeignKeyConstraint
DataRelation
Cú pháp đúng để tạo ra một bảng dữ liệu phù hợp với SQL Server
DataTable
SqlDataTable
SqlTable
DataTable
Phương thức nào của SqlDataAdapter được sử dụng để nạp dữ liệu vào Dataset?
Fill
Update
Fills
Push
Đoạn mã thích hợp để đưa dữ liệu vào một dataset, SachDataSet, sử dụng đối tượng SachDataAdapter là
SachDataAdapter.Update(SachDataSet)
SachDataAdapter.Push(SachDataSet)
SachDataAdapter.Fill(SachDataSet)
SachDataAdapter.Fills(SachDataSet)
Phương thức nào của lớp SqlDataAdapter được dùng để cập nhật các thay đổi dữ liệu từ một Dataset lên nguồn dữ liệu (data source)?
Save
ExecuteNonQuery
Update
Fill
Đối tượng nào KHÔNG là đối tượng DataAdapter?
QueryDataAdapter
OleDbDataAdapter
SqlDataAdapter
Tất cả đều đúng
Thành phần nào không phải là thuộc tính của đối tượng Data Adapter:
SQLCommand
DeleteCommand
InsertCommand
UpdateCommand
DataAdapter không thể
lấy dữ liệu
chứa dữ liệu
cập nhật dữ liệu
tất cả đều đúng
Giả sử chúng ta có đối tượng kết nối SqlConnection là conn và kết nối đã được mở. Kết nối đã được tạo thành công. Kết quả thực thi của đoạn lệnh bên dưới:
Một DataSet trong đó có 1 DataTable tên là "sinhvien"
Một DataSet trong đó không có bất kỳ DataTable nào
Báo lỗi
Một DataSet trong đó có 1 DataTable tên là "sv"
Để gọi phương thức Select của lớp SinhVien thì tùy chọn nào sau đây là phù hợp
DataTable SvTB = SinhVien.Select("Select * From tbSinhVien");
SinhVien.Select("Select * From tbSinhVien");
DataTable SvTB = SinhVien.Select();
Select("Select * From tbSinhVien");
Lệnh nào dưới đây hiển thị nội dung mục đang chọn trên gridBox1 lên textBox1 khi người dùng chọn các mục của gridBox1 (bằng cách click chuột)?
textBox1.Text = gridBox1.Cells[CurrentIndex].Value.ToString();
textBox1.Text = gridBox1.Rows[CurrentIndex].Value.ToString();
textBox1.Text = gridBox1.Cells[e.RowIndex][0].Value.ToString();
textBox1.Text = gridBox1.Rows[e.RowIndex].Cells[0].Value.ToString();
Chọn thứ tự đúng của các đối tượng để hiển thị dữ liệu trên Form
(i) DataGridView (ii) SqlConnection (iii) DataTable (iv) SqlDataAdapter
(iii) - (i) - (iv) - (ii)
(i) - (iv) - (iii) - (ii)
(ii) - (iv) - (iii) - (i)
(i) - (ii) - (iii) - (iv)
Một ___ được xác định trong namespace System.Data và biểu diễn một bảng dữ liệu lưu trữ trong bộ nhớ (memory-resident).
SqlDataTable
SqlDataSet
DataSet
DataTable
