connection连接如果使用的时候时未关闭,再次打开就会报异常,如下图所示
打开连接时所报异常信息
解决此异常的方法是打开连接之前先判断当前连接的状态,通过connection对象的State属性进行判断,此属性的值是一个枚举,如下图所示
解决连接时的异常方法
由于每次连接数据库都会至少执行3个操作1)登录数据库服务器2)执行对数据库的操作3)注销用户,所以每次通过Connection对象向数据库服务器申请连接时都比较耗时,而ADO.NET的内部有一个连接池可以暂时存储连接对象,以减少连接耗时;连接池默认是打开的
使用连接池所耗时间
未使用连接池所耗时间
也可以通过数据库管理器中的事件探查器(一个监视工具)进行查看,当执行SQL语句出现异常时可以通过此工具查看执行的SQL语句编写是否正确,之后用到再说,打开方式
工具->SQL Server Profiler,在之后的对话框中选择"连接","运行"选项即可打开如下窗口
数据库管理器中的事件探查器,这个是使用连接池的截图
SqlCommand类中主要是学习使用执行SQL语句的方法及其区别(之后配合实例说明)
1)ExecuteNonQuery() 执行对数据库的增删改的语句,返回受影响的行数
2)ExecuteScalar() 执行查询语句,返回首行首列
3)ExecuteReader() 执行查询语句,返回DataReader对象
SqlConnection和SqlCommand类与操作文件类一样不属于托管资源,所以需要在程序中每次执行完后手动编写关闭连接,释放资源的代码太麻烦,推荐使用using语句,关于using之前说过不再赘述
SqlCommand的对象中需要两个参数1)执行的SQL语句 2)连接的对象
使用using语句