1. ADO.NET概述
1. 它是.NET编程环境中优先使用的数据访问接口
2. ADO.NET传送的数据都XML格式的
3. ADO.NET是一组用于和数据进行交互的面向对象的类库
4. 数据源:通常是各种数据库,但文本文件、EXCEL表格和XML这类文件也可以读取
5. ADO.NET为不同的数据源提供不同的支持类库,我们称之为Data Providers
2. 访问数据库的步骤
1. 建立数据库连接
2. 打开连接
3. 存取数据
4. 操作数据
5. 关闭连接
6. 清理资源
C#访问数据库的步骤
1. 必须导入包含适当的ADO.NET类的名称空间
2. 获取具体的数据库连接字符串
3. 实例化Connection对象,并建立、打开连接。
4. 使用Command对象,从数据库存取器中读取数据或向数据存取中写入数据,或是执行SQL语句
5. 关闭连接
3. 实践--商品管理
4. 数据库连接字符串
//Windows身份验证方式登陆数据,这种方式必须确保你当前应用程序所在的计算机能够正确访问数据库
Data Source=thc; Initial Catalog=OneDb; Integrated Security=True
//Sql Server身份验证方式登陆,写法一
Data Source=thc; Initial Catalog=OneDb; Persist Security Info=True; User ID=sa; Password=123
//Sql server 身份验证方式登陆 写法二
结果:
1. 它是.NET编程环境中优先使用的数据访问接口
2. ADO.NET传送的数据都XML格式的
3. ADO.NET是一组用于和数据进行交互的面向对象的类库
4. 数据源:通常是各种数据库,但文本文件、EXCEL表格和XML这类文件也可以读取
5. ADO.NET为不同的数据源提供不同的支持类库,我们称之为Data Providers
2. 访问数据库的步骤
1. 建立数据库连接
2. 打开连接
3. 存取数据
4. 操作数据
5. 关闭连接
6. 清理资源
C#访问数据库的步骤
1. 必须导入包含适当的ADO.NET类的名称空间
2. 获取具体的数据库连接字符串
3. 实例化Connection对象,并建立、打开连接。
4. 使用Command对象,从数据库存取器中读取数据或向数据存取中写入数据,或是执行SQL语句
5. 关闭连接
3. 实践--商品管理
4. 数据库连接字符串
//Windows身份验证方式登陆数据,这种方式必须确保你当前应用程序所在的计算机能够正确访问数据库
Data Source=thc; Initial Catalog=OneDb; Integrated Security=True
//Sql Server身份验证方式登陆,写法一
Data Source=thc; Initial Catalog=OneDb; Persist Security Info=True; User ID=sa; Password=123
//Sql server 身份验证方式登陆 写法二
server=thc; database=OneDb; uid=sa; pwd=234
为此我自己创建一个数据库,库里建了一个表,表中插了几条数据,于是我就自己写了一个实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace Con27
{
class Program
{
//SQL SERVER身份验证方式2
static string connstr3 = "Data Source=127.0.0.1;Initial Catalog=OneDB;Persist Security Info=True;User ID=sa;Password=123123";
//Windows身份验证方式
static string connstr2 = "Data Source=127.0.0.1;Initial Catalog=OneDB;Integrated Security=true";
//SQL SERVER身份验证的方式
static string connstr = "server=127.0.0.1;database=OneDB;uid=sa;pwd=123123";
static string sqlstr = "select * from People";
static void Main(string[] args)
{
#region 数据访问模式1
//SqlConnection conn = new SqlConnection(connstr3);//创建连接对象
//SqlCommand cmd = new SqlCommand(sqlstr, conn);//创建命令对象
//cmd.CommandType = CommandType.Text;//定义命令对象的类型
//conn.Open();//打开连接
//SqlDataReader sdr = cmd.ExecuteReader();//打开数据流
//while (sdr.Read())
//{
// Console.WriteLine("ID号是:{0},姓名:{1},性别:{2},年龄:{3}",sdr["id"].ToString(),sdr["name"],sdr["sex"],sdr["age"].ToString());
//}
//sdr.Close();
//conn.Close();
#endregion
#region 数据访问模式2
/*
using语句,定义一个范围,在范围结束时处理对象。
场景:
当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。
要达到这样的目的,用try...catch来捕捉异常也是可以的,但用using也很方便。
例如:
using (Class1 cls1 = new Class1(), cls2 = new Class1())
{
// the code using cls1, cls2
} // call the Dispose on cls1 and cls2
这里触发cls1和cls2的Dispose条件是到达using语句末尾或者中途引发了异常并且控制离开了语句块。
*/
using (SqlConnection conn = new SqlConnection(connstr3))
{
SqlCommand cmd = new SqlCommand(sqlstr, conn);
cmd.CommandType = CommandType.Text;
conn.Open();
SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);//括号内的参数作用是,当关闭数据流时同时关闭连接对象。
while (sdr.Read())
{
Console.WriteLine("ID号是:{0},姓名:{1},性别:{2},年龄:{3}", sdr["id"].ToString(), sdr["name"], sdr["sex"], sdr["age"].ToString());
}
sdr.Close();
}
#endregion
Console.ReadKey();
}
}
}
结果: