
习题七 l.dataTable是数据集myDataSet中的数据表对象,有9条记录。调用下列代码后,dataTable中还 有几条记录() dataTable.Rows [8].Delete(); A.9 B.8 C.1 D.0 正确答案:A 2.在ADO.NET中,为了确保DataAdapter对象能够正确地将数据从数据源填充到DataSet中,则必须事 先设置好DataAdapter对象的下列哪个Command属性() A.Delete Command B.Update Command C.Insert Command D.Select Command 正确答案:D 3.在AD0.NET中,为访问DataTable对象从数据源提取的数据行。可使用DataTable对象的()属 性。 A.Rows B.Columns C.Constraints D.DataSet 4.变量名为conn的SqlConnection对象连接到本地SQL Server2000的Northwind实例。该实例 中包含表Orders..为了从Orders表查询所有CustomerID等于"tom"的订单数据,请用正确的字符串sqlstr 的赋值语句替换下列第一行语句。() string sqlstr="本字符串需要你用正确的SQL语句替换”: conn.Open(; SqlCommand cmd conn.CreateCommand(); cmd.CommandText sqlstr; cmd.CommandType CommandType.Text; SqlParameter pl cmd.Parameters.Add("@CustomerID",SqlDbType.VarChar,5); pl.Value "tom"; SglDataReader dr cmd.ExecuteReader () A.string sqlstr="Select From orders where CustomerID="; B.string sqlstr="Select From orders where CustomerID=CustomerID " C.string sqlstr="Select From orders where CustomerID=@CustomerID " D.string sqlstr="Select From orders"; 正确答案:C 5.cmd是一个SqlCommand类型的对象,并己正确连接到数据库MyDB.为了在遍历完SqlDataReader对
习题七 1. dataTable 是数据集 myDataSet 中的数据表对象,有 9 条记录。调用下列代码后,dataTable 中还 有几条记录 ( ) dataTable.Rows[8].Delete(); A. 9 B. 8 C. 1 D. 0 正确答案:A 2. 在 ADO.NET 中,为了确保 DataAdapter 对象能够正确地将数据从数据源填充到 DataSet 中,则必须事 先设置好 DataAdapter 对象的下列哪个 Command 属性( ) A.Delete Command B.Update Command C.Insert Command D.Select Command 正确答案:D 3. 在 ADO.NET 中,为访问 DataTable 对象从数据源提取的数据行。可使用 DataTable 对象的( )属 性。 A. Rows B. Columns C. Constraints D. DataSet 4. 变量名为 conn 的 SqlConnection 对象连接到本地 SQL Server 2000 的 Northwind 实例。该实例 中包含表 Orders.为了从 Orders 表查询所有 CustomerID 等于"tom"的订单数据,请用正确的字符串 sqlstr 的赋值语句替换下列第一行语句。( ) string sqlstr="本字符串需要你用正确的 SQL 语句替换": conn.Open(); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = sqlstr; cmd.CommandType = CommandType.Text; SqlParameter p1 = cmd.Parameters.Add("@CustomerID",SqlDbType.VarChar,5); p1.Value = "tom"; SqlDataReader dr = cmd.ExecuteReader(); A. string sqlstr="Select * From orders where CustomerID= "; B. string sqlstr="Select * From orders where CustomerID=CustomerID "; C. string sqlstr="Select * From orders where CustomerID=@CustomerID "; D. string sqlstr="Select * From orders"; 正确答案:C 5. cmd 是一个 SqlCommand 类型的对象,并已正确连接到数据库 MyDB.为了在遍历完 SqlDataReader 对

象的所有数据行后立即自动释放cmd使用的连接对象,应采用下列哪种方法调用ExecuteReader方法。() A.SglDataReader dr cmd.ExecuteReader(); B.SqlDataReader dr cmd.ExecuteReader(true); C.SqlDataReader dr =cmd.ExecuteReader(0); D.SqlDataReader dr cmd.ExecuteReader(CommandBehavior.CloseConnection); 正确答案:D 6.下列哪些方法可以在DataSet对象ds中添加一个名为"Customers'"的DataTable对象() A.DataTable dt_customers new DataTable(); B.DataTable dt_customers new DataTable("Customers"); ds.Tables.Add(dt_customers); C.ds.Tables.Add("Customers"): D.ds.Tables.Add(new DataTable("Customers"); 正确答案:BCD 7.已知dsl,ds2分别代表两个不同的DataSet对象。其中dsl已包含名为"Customer"的DataTable对 象,且该DataTable对象被变量dt_Customer引用。已知dt_Customer表中有l00条记录,则执行下列语 句后,新的数据表new_dt_Customer中包含()条记录。 DataTable new_dt_Customer dt_Customer.Copy(); A.0 B.100 C.200 D.300 正确答案:B 8.dt为DataTable类型的变量,引用名为"Customers"的DataTable对象。该表中包含 "CustomerID”,"Cus tomerName”,"Address”,"Telephone?”等4列。将数据列"CustomerID"设为该表的主 键的正确语句有:() A.dt.PrimaryKey ="CustomerID"; B.dt.PrimaryKey.Add("CustomerID"); C.dt.PrimaryKey new object[]{"CustomerID"): D.dt.PrimaryKey new DataColumn[]{dt.Columns["CustomerID"]}; 正确答案:D 9.已知ds为数据集对象。以下语句的作用是()。 ds.Tables[";Product"].Constraints.Add( new UniqueConstraint("UC_ProductName",new string[]{"Name","Class"),true)); A.为表”;Product"添加一个由列"Name”,"Class"组合成的主键约束 B.为表”;Product"添加一个由列"Name”,"Class”组合成的唯一性约束 C.为数据集ds添加一个名为”;Product'"的数据表,并添加两个列,列名分别为"Name"和"Class” D.为数据集ds添加一个名为”;Product"的数据表,并添加一个名为"UC_ProductName"的数据列 正确答案:A l0.己知变量ds引用某个DataSet对象,该DataSet对象中已包含一个表名为"tablel"的数据表。在
象的所有数据行后立即自动释放 cmd 使用的连接对象,应采用下列哪种方法调用 ExecuteReader 方法。( ) A. SqlDataReader dr = cmd.ExecuteReader( ); B. SqlDataReader dr = cmd.ExecuteReader(true); C. SqlDataReader dr = cmd.ExecuteReader(0); D. SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 正确答案:D 6. 下列哪些方法可以在 DataSet 对象 ds 中添加一个名为"Customers"的 DataTable 对象( ) A. DataTable dt_customers = new DataTable(); B. DataTable dt_customers = new DataTable("Customers"); ds.Tables.Add(dt_customers); C. ds.Tables.Add("Customers"); D. ds.Tables.Add(new DataTable("Customers"); 正确答案:BCD 7. 已知 ds1,ds2 分别代表两个不同的 DataSet 对象。其中 ds1 已包含名为"Customer"的 DataTable 对 象,且该 DataTable 对象被变量 dt_Customer 引用。已知 dt_Customer 表中有 100 条记录,则执行下列语 句后,新的数据表 new_dt_Customer 中包含( )条记录。 DataTable new_dt_Customer = dt_Customer.Copy(); A. 0 B. 100 C. 200 D. 300 正确答案:B 8. dt 为 DataTable 类型的变量,引用名为"Customers"的 DataTable 对象。该表中包含 "CustomerID" ,"CustomerName" ,"Address" ,"Telephone" 等 4 列。将数据列"CustomerID"设为该表的主 键的正确语句有: ( ) A. dt.PrimaryKey = "CustomerID"; B. dt.PrimaryKey.Add("CustomerID"); C. dt.PrimaryKey = new object[]{"CustomerID"}; D. dt.PrimaryKey = new DataColumn[]{dt.Columns["CustomerID"]}; 正确答案:D 9. 已知 ds 为数据集对象。以下语句的作用是( )。 ds.Tables[";Product"].Constraints.Add( new UniqueConstraint("UC_ProductName",new string[]{"Name","Class"},true)); A. 为表";Product"添加一个由列"Name","Class"组合成的主键约束 B. 为表";Product"添加一个由列"Name","Class"组合成的唯一性约束 C. 为数据集 ds 添加一个名为";Product"的数据表,并添加两个列,列名分别为"Name"和"Class" D. 为数据集 ds 添加一个名为";Product"的数据表,并添加一个名为"UC_ProductName"的数据列 正确答案:A 10. 已知变量 ds 引用某个 DataSet 对象,该 DataSet 对象中已包含一个表名为"table1"的数据表。在

Windows窗体Forml中,为了将变量名为dataGridl的DataGrid控件绑定到数据表”tablel",可以使用代 码()。 A.dataGridl.DataSource ds; dataGridl.DataMember ds.Tables["tablel"]; B.dataGridl.DataMember ds; C.dataGridl.DataSource new DataView(ds.Tables["tablel"]); D.dataGridl.DataSource ds.Tables["tablel"]; dataGridl.DataMember ds; 正确答案:AC ll.DataSet对象ds中,数据表对象Customers的表名为"Customers",其表结构如下: 列名 类型 列序号 CustomerID int 0 CompanyName string 1 Address string 2 City string 3 则下列向该表添加一行新数据的语句是否正确() object[]row={"ATA”,"A8”,"Beijing",l}; ds.Tables["Customers"].Rows.Add(row); A.正确 B.错误 正确答案:B 12.己知有如下变量: string strConn1 ="Provider=SQLOLEDB;Data Source=(local)\NetSDK;"+"Initial Catalog=Northwind"; string strConn2 "Data Source=(local)\NetSDK;" "Initial Catalog=Northwind;Provider=SQLOLEDB"; string strSql1 "Select FROM Customers"; string strSq12 "Select FROM orders"; 有下列3组语句: a.OleDbDataAdapter dal new OleDbDataAdapter(strSql1,strConnl); 0leDbDataAdapter da2 new 0leDbDataAdapter(strSql2,strConn1); 调用dal,da2将数据下载到数据集 b.0leDbDataAdapter dal new 0leDbDataAdapter(strSql1,strConn1): 0leDbDataAdapter da2 new 0leDbDataAdapter(strSql2,strConn2); 调用dal,da2将数据下载到数据集 c.OleDbConnection conn new 0leDbConnection(strConn1): 0leDbDataAdapter dal new 0leDbDataAdapter(strSql1,conn): OleDbDataAdapter da2 new 0leDbDataAdapter(strSq12,conn); 调用dal,da2将数据下载到数据集,则执行效率最低的一组语句是()
Windows 窗体 Form1 中,为了将变量名为 dataGrid1 的 DataGrid 控件绑定到数据表"table1",可以使用代 码( )。 A. dataGrid1.DataSource = ds; dataGrid1.DataMember = ds.Tables["table1"]; B. dataGrid1.DataMember = ds; C. dataGrid1.DataSource = new DataView(ds.Tables["table1"]); D. dataGrid1.DataSource = ds.Tables["table1"]; dataGrid1.DataMember = ds; 正确答案:AC 11. DataSet 对象 ds 中,数据表对象 Customers 的表名为"Customers",其表结构如下: 列名 类型 列序号 CustomerID int 0 CompanyName string 1 Address string 2 City string 3 则下列向该表添加一行新数据的语句是否正确( ) object[] row = { "ATA","A8","Beijing",1}; ds.Tables["Customers"].Rows.Add(row); A. 正确 B. 错误 正确答案:B 12. 已知有如下变量: string strConn1 = ";Provider=SQLOLEDB;Data Source=(local)\NetSDK;"+"Initial Catalog=Northwind"; string strConn2 = "Data Source=(local)\NetSDK;"+ "Initial Catalog=Northwind;Provider=SQLOLEDB"; string strSql1 = "Select * FROM Customers"; string strSql2 = "Select * FROM orders"; 有下列 3 组语句: a. OleDbDataAdapter da1 = new OleDbDataAdapter(strSql1,strConn1); OleDbDataAdapter da2 = new OleDbDataAdapter(strSql2,strConn1); 调用 da1,da2 将数据下载到数据集 b. OleDbDataAdapter da1 = new OleDbDataAdapter(strSql1,strConn1); OleDbDataAdapter da2 = new OleDbDataAdapter(strSql2,strConn2); 调用 da1,da2 将数据下载到数据集 c. OleDbConnection conn = new OleDbConnection(strConn1); OleDbDataAdapter da1 = new OleDbDataAdapter(strSql1,conn); OleDbDataAdapter da2 = new OleDbDataAdapter(strSql2,conn); 调用 da1,da2 将数据下载到数据集,则执行效率最低的一组语句是( )

A.a B.b C.c D.都一样 正确答案:B l3.da为DataAdapter对象,其SeclectCommand的查询字符串为: Select From Customers da的TableMappings集合中包含一个DataTableMapping对象,如下代码所示: DataTableMapping dcm=da.TableMappings.Add("Customers","dtCustomers"); dcm.ColumnMappings.Add ("CustomerID","dtCustomerID"); dcm.ColumnMappings.Add("CustomerName","dtCustomerName"); dcm.ColumnMappings.Add("Address","dtAddress"); 数据集ds中已包含一个名为dtCustomers的数据表,该表包含3个数据列,列名分别为 dtCustomerID,dtCustomerName,dtAddress;另一方面,数据库中包含一个名为Customers的数据表,该表 包含3个数据列,列名分别为CustomerID,CustomerName,.Address.请问,若调用以下代码结果如何() da.FillSchema(ds,SchemaType.Source,"Customers"); A.目标数据集中包含1个数据表,表名"Customers” B.目标数据集中包含1个数据表,表名"dtCustomers' C.目标数据集中包含1个数据表,表名"Table” D.目标数据集中包含2个数据表,表名"Customers","dtCustomers E.目标数据集中包含2个数据表,表名"Table”,"dtCustomers” F.发异常 正确答案:D l4.在AD0.NET编程中,能否使用一个DataAdapter对象向多个DataTable填充数据() A.可以 B.不可以 正确答案:B l5.在DataSet中,若修改某一DataRow对象的任何一列的值,该行的DataRowState属性的值将变为 () A.DataRowState.Added B.DataRowState.Deleted C.DataRowState.Detached D.DataRowState.Modified 正确答案:D l6.myDataSet是一数据集对象,其中包含通过DataAdapter从数据库检索的构架和数据.在本地对 myDataSet进行修改后,调用下列语句 DataSet changes=myDataSet..GetChanges(O;获得的新的数据集changes将包含原数据集中状态为() 的数据行。 A.Added
A. a B. b C. c D. 都一样 正确答案:B 13. da 为 DataAdapter 对象,其 SeclectCommand 的查询字符串为: Select * From Customers da 的 TableMappings 集合中包含一个 DataTableMapping 对象,如下代码所示: DataTableMapping dcm=da.TableMappings.Add("Customers","dtCustomers"); dcm.ColumnMappings.Add("CustomerID","dtCustomerID"); dcm.ColumnMappings.Add("CustomerName","dtCustomerName"); dcm.ColumnMappings.Add("Address","dtAddress"); 数据集 ds 中已包含一个名为 dtCustomers 的数据表,该表包含 3 个数据列,列名分别为 dtCustomerID,dtCustomerName,dtAddress ;另一方面,数据库中包含一个名为 Customers 的数据表,该表 包含 3 个数据列,列名分别为 CustomerID,CustomerName,Address.请问,若调用以下代码结果如何( ) da.FillSchema(ds,SchemaType.Source,"Customers"); A. 目标数据集中包含 1 个数据表,表名"Customers" B. 目标数据集中包含 1 个数据表,表名"dtCustomers" C. 目标数据集中包含 1 个数据表,表名"Table" D. 目标数据集中包含 2 个数据表,表名"Customers","dtCustomers" E. 目标数据集中包含 2 个数据表,表名"Table","dtCustomers" F. 发异常 正确答案:D 14. 在 ADO.NET 编程中,能否使用一个 DataAdapter 对象向多个 DataTable 填充数据( ) A. 可以 B. 不可以 正确答案:B 15. 在 DataSet 中,若修改某一 DataRow 对象的任何一列的值,该行的 DataRowState 属性的值将变为 ( ) A. DataRowState.Added B. DataRowState.Deleted C. DataRowState.Detached D. DataRowState.Modified 正确答案:D 16. myDataSet 是一数据集对象,其中包含通过 DataAdapter 从数据库检索的构架和数据.在本地对 myDataSet 进行修改后,调用下列语句 DataSet changes = myDataSet.GetChanges();获得的新的数据集 changes 将包含原数据集中状态为( ) 的数据行。 A. Added

B.Deleted C.Detached D.Modified E.Unchanged 正确答案:ABD 17.DataAdapter对象的DeleteCommand的属性值为null,将造成:() A.程序编译错误 B.DataAdapter在处理DataSet中被删除的行时,这些行将被跳过不处理 C.DataAdapter在处理DataSet中被删除的行时,将引发异常 D.DataAdapter在处理DataSet中被删除的行时,将出现对话框询问用户如何处理该行 正确答案:C l8.DataAdapter对象的Update查询语句中,使用下列哪种Where子句可以保证本行的更新不会覆盖 其他用户的更改。() A.包含数据源所有的列 B.只包含主键列 C.包含主键列和一个时戳列 D.包含主键列和已修改列 正确答案:ACD l9.开发一个用DataGrid控件来显示产品的分类列表的ASP.NET程序,产品数据存放在名为 TestKingProducts的Microsoft SQL Server数据库中,每一个产品有一数值变量ProductID和字符变量 ProductName.利用SqlDataAdapter对象和SqlCommand通过存储过程来检索数据库中的产品数据,设置 SqlCommand对象的CommandType属性为CommandType.StoredProcedure,.设置CommandText属性为 procProductList.。产品列表通过由ProductID降序分类填充到一个DataTable对象中,要求数据通过 ProductName按字母倒序显示。请选择:() A.SqlCommand对象的CommandType属性设为CommandType.Text. 按下面方法更改SqlCommand对象的CommandType属性: Select FROM procProductList orDER BY ProductName DESC; 绑定DataGrid控件至DataTable对象, B.创建一个基于DataTable对象的DataView对象, 设置DataView对象的Sort属性为":ProductName DESC”. 绑定DataGrid控件至DataView对象, C.设置DataGrid控件的AllowSorting属性为True. 设置显示ProductName的DataGridColumn的SortExpression属性为”;ProductName DESC”, 绑定DataGrid控件至DataTable对象, D.设置DataTable对象的DisplayExpression属性为"ORDER BY ProductName DESC”. 绑定DataGrid控件至DataTable对象, 正确答案:B 20.编程题 (1)调用存储过程,设计程序完成下列功能:任意给出一个汉字,统计MyTable2中所有包含
B. Deleted C. Detached D. Modified E. Unchanged 正确答案:ABD 17. DataAdapter 对象的 DeleteCommand 的属性值为 null,将造成: ( ) A. 程序编译错误 B. DataAdapter 在处理 DataSet 中被删除的行时,这些行将被跳过不处理 C. DataAdapter 在处理 DataSet 中被删除的行时,将引发异常 D. DataAdapter 在处理 DataSet 中被删除的行时,将出现对话框询问用户如何处理该行 正确答案:C 18. DataAdapter 对象的 Update 查询语句中, 使用下列哪种 Where 子句可以保证本行的更新不会覆盖 其他用户的更改。( ) A. 包含数据源所有的列 B. 只包含主键列 C. 包含主键列和一个时戳列 D. 包含主键列和已修改列 正确答案:ACD 19. 开发一个用 DataGrid 控件来显示产品的分类列表的 ASP.NET 程序,产品数据存放在名为 TestKingProducts 的 Microsoft SQL Server 数据库中,每一个产品有一数值变量 ProductID 和字符变量 ProductName.利用 SqlDataAdapter 对象和 SqlCommand 通过存储过程来检索数据库中的产品数据,设置 SqlCommand 对象的 CommandType 属性为 CommandType.StoredProcedure,设置 CommandText 属性为 procProductList。 产品列表通过由 ProductID 降序分类填充到一个 DataTable 对象中,要求数据通过 ProductName 按字母倒序显示。请选择: ( ) A. SqlCommand 对象的 CommandType 属性设为 CommandType.Text. 按下面方法更改 SqlCommand 对象的 CommandType 属性: Select * FROM procProductList orDER BY ProductName DESC; 绑定 DataGrid 控件至 DataTable 对象. B. 创建一个基于 DataTable 对象的 DataView 对象, 设置 DataView 对象的 Sort 属性为 ";ProductName DESC". 绑定 DataGrid 控件至 DataView 对象. C. 设置 DataGrid 控件的 AllowSorting 属性为 True. 设置显示 ProductName 的 DataGridColumn 的 SortExpression 属性为";ProductName DESC". 绑定 DataGrid 控件至 DataTable 对象. D. 设置 DataTable 对象的 DisplayExpression 属性为 "ORDER BY ProductName DESC". 绑定 DataGrid 控件至 DataTable 对象. 正确答案: B 20. 编程题 (1)调用存储过程,设计程序完成下列功能:任意给出一个汉字,统计 MyTable2 中所有包含

该汉字的人数,并显示统计结果。 (2)己知数据库中定义了一张person表,表的数据结构如下: 字段名称字段类型字段含义 Id:数字编号 Xm:文本姓名 Xb:文本性别 N:数字年龄 Zip:文本邮政编码 用编写代码的方法在DataGridView中显示该数据表中年龄大于l8的所有纪录,显示时以编号的升序排 序,要求禁止用户编辑数据
该汉字的人数,并显示统计结果。 (2)已知数据库中定义了一张 person 表,表的数据结构如下: 字段名称字段类型字段含义 Id:数字编号 Xm:文本姓名 Xb:文本性别 Nl:数字年龄 Zip:文本邮政编码 用编写代码的方法在 DataGridView 中显示该数据表中年龄大于 18 的所有纪录,显示时以编号的升序排 序,要求禁止用户编辑数据