10 参考下列C#语句:
SqlConnection Conn1 = new SqlConnection( );
Conn1.ConnectionString = "Integrated Security=SSPI; Initial
Catalog=northwind";
Conn1.Open( );
SqlConnection Conn2 = new SqlConnection( );
Conn2.ConnectionString = "Initial Catalog=northwind; Integrated
Security=SSPI";
Conn2.Open( );
请问:上述语句将创建_____个连接池来管理这些SqlConnection 对象?
A.1
B.2
C.0
正确答案:B
dataTable 是数据集myDataSet 中的数据表对象,有9 条记录。调用下列代码后,dataTable 中还有几条记录?
dataTable.Rows[8].Delete();
A. 9
B. 8
C. 1
D. 0
答案:A
1.Conn2.ConnectionString = "Initial Catalog=northwind; Integrated
Conn1.ConnectionString = "Integrated Security=SSPI; Initial
Catalog=northwind";连接字符不一样。
ADO.NET自动将数据库连接存放在连接池中。连接池可以大大提高数据读取性能,因为不必等待建立全新的数据库连接,而可以直接利用连接池中现成的数据库连接。关闭连接时,并不是实际关闭连接,而是将连接标为未用,放在连接池中,以备下一次启用。
在创建一个新的数据库连接时,如果连接字符串不完全相同,将创建不同的连接池。
2.Delete()之后需要dataTable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态标志为删除,还可以通过dataTable.RejectChanges()回滚,使该行取消删除。
第一题:默认情况下一个连接字符串创建一个连接池,由于第一次使用没有关闭,所以第二次使用SqlConnection时,就会创建第二个连接池。这也是为什么连接要及时关闭,不然会抛出连接池已满的错误!
第二题:dataTable是在内存中的数据,调用row 的Delete知识改变了那一行的状态而已,并没有删除,要删除使用DataTable.Remove(DataRow)