介绍
ADO.NET 是.NET平台下操作数据库相关模块的统称。
我们借助它操作数据库,完成增删改查等基础操作;同时也可以执行SQL语句、调用SQL函数、执行存储过程等。
绝大多数大型业务系统都离不开数据库。如果需要将数据持久化存储,并且实现高效查询,就需要使用数据库。
ADO.NET核心提供一系列对象,这些对象封装好了数据库操作相关方法:
- Connection:建立与数据库的连接
- Command:执行SQL相关命令
- DataSet:内存中的数据集合,是数据库的抽象。操作DataSet如同操作离线数据库,内部包含DataTable(数据表)、DataRow(数据表中的单行记录)
- DataReader:只读向前的数据读取器
- DataAdapter:数据适配器
掌握ADO.NET,我们才能开发功能完善的业务系统,网站等应用也普遍依赖数据库,建议认真学习。
像EF、iBatis、NHibernate、Linq to Entities这类ORM框架,底层全部基于ADO.NET实现。你也可以基于ADO.NET自主开发ORM框架。
数据库连接
Connection用于建立程序与数据库之间的连接,是执行所有数据库操作的桥梁。
.NET 提供 SqlConnection 类实现数据库连接,所在命名空间:System.Data.SqlClient,程序集:System.Data.dll。
绝大多数和数据库交互的相关类型,都封装在这个dll中。
建立连接前,需要先准备数据库连接字符串,实例化SqlConnection对象时需要传入该字符串。
SqlConnection conn = new SqlConnection(connectionString);Code language: JavaScript (javascript)
连接字符串本质就是普通字符串,使用string类型存储。
两种登录方式连接字符串示例
- SA账号密码登录(SQL Server身份验证)
"Data Source=.;Initial Catalog=数据库名;User ID=sa;pwd=密码;"Code language: JSON / JSON with Comments (json)
- Windows身份验证登录
Data Source=.;Initial Catalog=数据库名;Integrated Security=TrueCode language: PHP (php)
连接字符串由多个配置项组成,使用英文分号分隔,格式为 键=值。
参数说明:
Data Source:数据库服务器地址。本地数据库可用.、localhost、127.0.0.1;远程服务器填写IP或域名。Initial Catalog:目标数据库名称User ID:数据库登录账号pwd:数据库登录密码
补充:
User ID和pwd不是必填项。使用Windows登录模式时,配置Integrated Security=True启用集成安全验证,无需填写账号密码。
C#中如何连接数据库
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=.;Initial Catalog=db;User ID=sa;pwd=123321;";
// using语句内实例化连接对象,代码块结束自动释放资源,无需手动Close()
using (SqlConnection conn = new SqlConnection(connectionString))
{
// 打开数据库连接
conn.Open();
// 在这里编写数据库操作代码
}
}Code language: JavaScript (javascript)
说明
conn.Open():打开数据库连接,必须调用该方法才会真正建立网络连接。using语法优势:离开using代码块范围后,自动调用资源释放,关闭数据库连接,避免连接泄漏。- 不使用using时,操作完成后需要手动调用
conn.Close()关闭连接。
其他使用
//conn.Open(); // 打开连接
//conn.Close(); // 手动关闭连接
//conn.ConnectionString = connectionString; // 动态赋值连接字符串
//conn.ConnectionString = ""; // 清空连接字符串Code language: JSON / JSON with Comments (json)
Next: SqlCommand