对数据库的访问时各种数据库应用程序开发的核心技术,.NET框架中提出的ADO.NET技术为应用程序的开发提供了一致的接口,增强了程序的可移植性和可扩展性。
a:使用链接对象Connection连接数据源
链接对象的作用是在应用程序与制定的数据库之间建立一种链接,这是访问数据库的第一步:核心代码
using System.Data; //引入包含基本数据访问类的ADO.NET基本命名空间 第一步简称 应用命名空间。
using System.Data.SqlClient ; //引入包含SQL Server数据库提供给程序的命名空间。
SqlConnection myschool = new SqlConnection(); //定义并实例化一个Connection对象。
myschool.ConnectionString = “Server = 数据库服务器名字;DataBase 数据名; Uid = 用户名;pwd = 密码;” //使用SQLServer 用户登录验证方式链接数据库
myschool . open();//根据链接字符串,打开指定的数据库;另外对于windows 验证链接数据库,链接数据库的字符串如下:myschool .ConnectionString = "Data Source = 数据库服务器名字(学校的‘.’)" ;initial Catalog = 要链接的数据库名字; user Id = sa ; pwd = bdqn" ; //如果没有密码可以省略
当数据库使用完毕后要及时关闭数据库的链接,即myschool.close();
b:操纵数据库需要使用SQL语句或存储过程,而ADO.NET中command 对象就可以实现对数据库的操纵了 。
例如:string sqlstr = "";// 引号内为SQL 语句或存储过程 这一步也就是如何操纵数据库包括通过command 的方法对数据库进行 增 删 改 查。
SqlCommand my = new SqlCommand(sqlstr,myconn);//定义并实例化一个command 对象
my.ExecuteReader();//调用Command对象的方法操纵数据库
my.Connection = myconn ;//将先前打开数据库的myconn对象付给my对象的Connection
my.CommandText = strsql;//将要执行的SQL语句或存储过程赋给my对象的ConnandText属性
c: 下面说一下Command 的主要方法 也是对数据库经行操作的几个方法
ExecuteNonQuery();用于执行InSERT,Delete, Update 等无需返回记录的SQL语句,但它会返回执行操作后数据库受影响的行数。 即应用于增删改 的方法。
ExecuteScalar(); 用于执行SQL语句,他会返回结果中首行首列的值,比较适合执行诸如聚合函数Count(),类的语句。
d:使用数据读取器对象DataReader读取数据, Command对象在执行ExecuteReader() 方法后吗,再返回记录的同时,将产生一数据个读取对象DataReader来指向所返回的记录集,利用DataReader 就可以读取返回的记录。
DataReader 对象的一个重要方法是Read() ,该方法使得指针向前移动一次,并读取改行记录,即逐行读取。
注意:利用DataReader只能依次向前读取而不能修改数据库,并且Read()会返回一个布尔类型的值表明它是否读取到记录,读取到返回true 否则false
核心代码:SqlDataReader dr ;// 定义一个数据读取对象dr = my.ExecuteReader();//调用Command 的方法执行sql语句,并返回数据读取对象dr
if(dr.Read())//
{
//读取到如果 就执行的语句
}else
{
//没有读取到数据执行的语句
}
e:另外 数集对象DataSet和数据适配器对象DataAdapter 访问数据库。
DataSet 和DataReader 相似 ,只不过DataSet需要通过数据适配器的对象DataAdaper来实现和这两个对象的联系。
核心代码如下 ;
DataSet ds = new DataSet() ;// 定义并实例化 ,SqlDataAdapter adapt = new SqlDataAdapter(sqlStr,myconn) ;//实例化一个适配器的对象adapt