ADO.NET学习(一)

ADO.NET是一组用于和数据源进行交互的面向对象类库

ADO.NET的主要对象有以下几个:
Connection:用于连接到数据库和管理对数据库的事务
Command:用于对数据库发生SQL命令
DataReader:用于从数据源读取只进数据记录流
DataSet:用于对单层数据、XML数据和关系数据进行存储、远程处理和编程
DataAdapter:用于将数据推入DataSet,并使数据与数据库保持一致

1.connection对象
(1)访问数据首先要建立操作对象的连接,这就是connection对象。通常用的访问SQL Server的叫SqlConnection类,访问其他的叫OleDbConnection类,如Access,Oracle

(2)connection对象有两个主要方法:Open()和Close() 打开和关闭连接。

可以在web.config中添加数据库连接字符串。更安全。

实例:

以C#语言编写的ASP.NET代码为例:
第一步,在Web.Config的<configuration>下面加上一个数据库配置信息
<connectionStrings>
 <add name="squallx" connectionString="Data Source=将这里改成您的A数据库服务器IP;Initial Catalog=将这里改成您的数据库名A;Persist Security Info=True;User ID=将这里改成您的数据库用户名;Password=将这里改成您的数据库密码" providerName="System.Data.SqlClient"/>
</connectionStrings>

第二步,编写一个数据库连接类

public class Conn
{
        
public Conn()
        {
        }
    
public static SqlConnection creatConn()
    {
        
return new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["squallx"].ConnectionString);
    }
}



 

 

2.Command用于对数据库发出AQL命令,从而执行添加,修改,删除等操作。

(1)Command对象的两个方法:
ExecuteNonQuery() //执行命令并返回受影响的行数。可以理解为只执行sql语句
ExecuteReader()//执行命令并返回生成的DataReader
DataReader对象作用返回一个来自数据命令的只读,只进的数据流。(只读不能修改)

(2)Command语法

SqlCommand 对象名 = new SqlCommand("SQL语句",Connection实例化对象)

(3)对数据库的操作

 

 

  //查询数据
  SqlCommand cmd = new SqlCommand("select * from info",myStr);
  SqlDataReader dr1 = cmd.ExecuteReader();
  
  while(dr1.Read())
  {
  Response.Write(dr1["name"]);
  Response.Write(dr1["sex"]);
  Response.Write("<br>");
 }
 dr1.Close();
 
 //修改数据
 SqlCommand update = new SqlCommand("update info set name='李四',sex='女'where name='张三'",myStr);
 update.ExecuteNonQuery();
 
 //删除数据
 SqlCommand delete = new SqlCommand("delete from info where name='李四'",myStr);
 delete.ExecuteNonQuery();
 Response.Write("数据已删除");
 
 myStr.Close();
 

 

 

3.DataSet

数据集(DataSet)是独立于数据存储区且与之不同的数据结构,是一种代表关系数据的内存驻留结构。将数据库读到数据集,从而进行无连接的操作。
DataSet是ADO.NET中的关键对象,所有复杂的操作都要使用它。DataSet包含一组相关的DataTable对象,代表要使用的数据库表,每一个DataTable对象都用子DataRow和DataColumn对象,分别代表数据库的行和列。通过这些对象,可以获取表的行和列的所有元素。

4.DataAdapter

DataAdapter对象充当数据库和ADO.NET对象模型中断开连接的对象之间的桥梁。
DataAdapter对象在SataSet与源数据之间起到桥梁的作用。
DataAdapter对象会填充DataSet对象中的表,而且能读取缓存的更改并将其提交给数据库。
DataAdapter对象的两个主要方法:
Fill()方法:填充数据集。
Update()方法:向数据库提交存储在DataSet中的更改。

Update方法的原理:使用Update方法自动遍历DataTable中的所有行,以检查需要对数据库作出的变动,它为每一发生更改的行调用INSERT、UPDATE或DELETE命令

实例:

myStr.Open();//打开数据库连接

SqlDataAdapter da 
= new SqlDataAdapter("select * from info",myStr);
DataSet ds 
= new DataSet();
da.Fill(ds,
"info");

if(ds.Tables[0].Rows.Count==0)
{
 Response.Write(
"数据库中无数据!");
}
else
{
 
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
 {
  Response.Write(ds.Tables[
"info"].Rows[i][1]);
  Response.Write(ds.Tables[
"info"].Rows[i]["sex"]);
  Response.Write(
"<br>");
 }
}
myStr.Close();

 

 

4.一个常用类
(1)SqlCommandBuilder类:自动生成单表命令,在更新单一表的简单情况下,我们不需要知道如何编写SQL语句以完成更新
(2)DataTable Rows集合的三个常用方法
Find方法:检索行
Add方法:创建行
Delete方法:删除行

实例:

 

myStr.Open();//打开数据库连接

SqlDataAdapter da 
= new SqlDataAdapter("select * from info",myStr);
SqlCommandBuilder cb 
= new SqlCommandBuilder(da);//生成SQL命令并与DataAdapter关联
DataSet ds = new DataSet();
da.Fill(ds,
"info");//在使用DataSet之前我们必须将来自数据库的数据填充它

//添加数据
DataRow dr = ds.Tables["info"].NewRow();//使用DataTable对象的NewRow方法创建新行
dr["name"]="张三";
dr[
"sex"]="";
ds.Tables[
"info"].Rows.Add(dr);//Rows集合的Add方法添加行

//修改数据
Response.Write("修改之前的数据为:"+ds.Tables["info"].Rows[0]["name"]+" "+ds.Tables["info"].Rows[0]["sex"]+"<br>");
ds.Tables[
"info"].Rows[0][1]="李四";
ds.Tables[
0].Rows[0][2]="";
Response.Write(
"修改后的数据为:"+ds.Tables[0].Rows[0][1]+" "+ds.Tables[0].Rows[0][2]+"<br>");

//删除数据
ds.Tables["info"].Rows[0].Delete();//Rows集合的Delete方法删除行
da.Updata(ds,"info");
Response.Write(
"数据已删除");

myStr.Close();

 

 

posted @ 2009-12-11 02:59  vindy  阅读(992)  评论(0编辑  收藏  举报