C#中ADO.NET数据库连接方式详解
需积分: 10 186 浏览量
更新于2024-09-20
收藏 2KB TXT 举报
本文将详细介绍在C#中使用ADO.NET进行SQL数据库连接的几种常见方式,主要关注`SqlConnection`类的创建和配置。首先,我们将探讨硬编码连接字符串与配置管理器(`ConfigurationManager`)的使用。
1. 硬编码连接字符串
在代码中直接定义连接字符串是常用的方法。例如:
```csharp
string str = @"database=pubs;server=localhost\SQLEXPRESS;uid=sa;pwd=123456;";
con.ConnectionString = str;
```
这里使用了`SqlConnection`构造函数,并设置`ConnectionString`属性为硬编码的连接字符串,用于指定数据库服务器、数据库名称、用户名和密码等信息。
2. 利用`SqlConnectionStringBuilder`类
`SqlConnectionStringBuilder`提供了一种更为灵活的方式来构建连接字符串。例如:
```csharp
SqlConnectionStringBuilder conStr2 = new SqlConnectionStringBuilder();
conStr2.DataSource = "TARENA-54\\SQLEXPRESS";
conStr2.InitialCatalog = "others";
conStr2.IntegratedSecurity = true;
con.ConnectionString = conStr2.ToString();
```
这个方法允许通过设置单独的属性来构造连接字符串,之后再将其组合。
3. 使用`ConfigurationManager`
避免硬编码敏感信息是最佳实践。`ConfigurationManager`可以从应用程序配置文件中获取连接字符串。在`web.config`或`app.config`中,可以这样定义:
```xml
<connectionStrings>
<add name="mySql" connectionString="DataSource=TARENA-54\SQLEXPRESS;InitialCatalog=others;IntegratedSecurity=True"/>
</connectionStrings>
```
在代码中通过`ConfigurationManager.ConnectionStrings["mySql"]`获取并使用连接字符串:
```csharp
con.ConnectionString = ConfigurationManager.ConnectionStrings["mySql"].ToString();
```
这样,如果需要更改连接字符串,只需修改配置文件即可,无需修改代码。
4. 动态连接字符串获取
除了预先定义好的连接字符串,还可以动态获取,例如根据环境变量或用户输入。这里展示的是直接使用字符串变量的方式,但实际应用中可能需要更安全的方法:
```csharp
string dynamicConnectionString = "DataSource=TARENA-54\\SQLEXPRESS;InitialCatalog=others;IntegratedSecurity=True";
con.ConnectionString = dynamicConnectionString;
```
最后,通过创建`SqlCommand`对象执行SQL查询,并使用`SqlDataReader`遍历结果集:
```csharp
cmd = new SqlCommand("select * from obi", con);
reader = cmd.ExecuteReader();
while (reader.Read())
{
// 处理每一行数据
}
reader.Close();
con.Close();
```
总结来说,本文介绍了在C#中使用ADO.NET连接SQL数据库的几种方式,包括硬编码连接字符串、`SqlConnectionStringBuilder`类、以及通过`ConfigurationManager`获取配置文件中的连接字符串。同时,展示了如何执行SQL查询并处理查询结果。这些方法的选择取决于具体项目的需求,如对安全性、可维护性和灵活性的要求。
点击了解资源详情
点击了解资源详情
161 浏览量
189 浏览量
2009-08-02 上传
149 浏览量
142 浏览量
212 浏览量
2007-10-19 上传

namehwh
- 粉丝: 2
最新资源
- UML统一建模语言全方位指南
- VBS脚本基础教程:条件判断与逻辑运算
- C# 3.0 新特性详解:隐型变量、扩展方法与Lambda表达式
- VBS脚本入门教程6:FSO操作实践
- VBS入门教程5:FSO操作与文本文件创建
- VBS脚本入门教程4:使用WshShell对象控制应用程序
- VBS脚本基础教程:Windows命令与实战示例
- 源码追踪:名家经验与阅读策略
- 20世纪编程革命:OOP起源与发展
- 飞机订票系统实现与管理
- Windows主板BIOS设置详解与图解教程
- JAVA面试必备:基础知识点与异常处理
- 《代码大全2》:软件构建的艺术
- Hibernate入门指南:Java关系数据库持久化与配置详解
- Oracle SOA搭建指南
- C++批判:编程语言趋势与问题分析(第3版)