C#高级编程:数据库连接[1]
使用数据库连接
为了访问数据库 需要提供某种类型的连接参数 例如运行数据库的机器 和登录凭证 使用ADO的用户会很快熟悉 NET连接类OleDbConnection和SqlConnection 图 显示了连接类及它们支持的接口
在本章的示例中 使用Northwind数据库 它是和 NET Framework SDK示例一起安装的 下面的代码段说明了如何创建 打开和关闭Northwind数据库的连接 using System Data SqlClient; string source = server=(local)\\NetSDK; + integrated security=SSPI; + database=Northwind ; SqlConnection conn = new SqlConnection(source); conn Open(); // Do something useful conn Close();
图
如果以前使用过ADO或OLE DB 就会很熟悉连接字符串 如果使用的是OleDb提供程序 就应能剪切和粘贴旧代码 在该示例的连接字符串中 使用的参数如下所示 连接字符串中的参数用分号分隔开 ● server=(local)\\NetSDK 表示要连接的数据库服务器 SQL Server允许在同一台机器上运行多个不同的数据库服务器进程 所以这里在本地机器上连接NetSDK进程 ● integrated security=SSPI 这个参数使用Windows Authentication连接数据库 最好在源代码中使用这个参数 而不是用户名和密码 ● database=Northwind 这描述了要连接的数据库实例 每个SQL Server进程都可以有几个数据库实例
这个示例使用定义的连接字符串打开数据库连接 再关闭该连接 连接打开后 就可以对数据源执行命令 完成后 就可以关闭连接
SQL Server有另一个模式的身份验证 它可以使用Windows集成的安全性 这样在登录时提供的证书就会传送给SQL Server 这适合于删除连接字符串的uid 和 pwd部分 并添加Integrated Security=SSPI
在本章的下载代码中 有一个文件Login cs简化了本章的示例 它链接了所有的示例代码 包括用于这些示例的数据库连接信息 可以修改该文件 使用自己的服务器名称 用户和密码 在默认情况下 该文件使用Windows集成的安全性 但是可以根据需要修改用户名和密码
高效地使用连接
一般情况下 当在 NET中使用 稀缺 的资源时 例如数据库连接 窗口或图形对象 最好确保每个资源在使用后立即关闭 尽管 NET的设计人员实现了自动的垃圾收集 垃圾最终都会被回收 但仍需要尽可能早地释放资源 以避免出现资源匮乏的情况
当编写访问数据库的代码时 这是非常明显的 因为使连接打开的时间略长于需要的时间 就可能影响其他会话 在极端的情况下 不关闭连接会使其他用户无法进入一整组数据表 极大地降低了应用程序的性能 关闭数据库连接应是强制的 所以本节讨论如何构建代码 把一直打开资源的风险降到最低
主要有两种方式可以确保数据库连接等类似的 稀缺 资源在使用后立即释放 第一种方式—— 利用try…catch…finally语句块 确保释放资源的第一种方式是利用try…catch…finally块 确保在finally块中关闭任何已打开的连接 下面是一个小示例 try { // Open the connection conn Open(); // Do something useful }
lishixinzhi/Article/program/net/201311/14825