ADO.NET 2.0 快速入门2
1.Command对象的作用:
用于对数据库发出SQL命令,从而执行添加、修改、删除等操作;
2.Comman对象的两个主要方法:
ExecuteNonQuery方法:执行命令并返回受影响的行数;
ExecuteReader方法:执行命令并返回生成的DataReader;
3.DataReader对象的作用?
返回一个来自数据命令的只读、只进的数据流;
语法:SqlCommand 对象名=new SqlCommand(“SQL语句”,Connection实例化对象)
4.使用Command与DataReader的数据操作实例:
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection Conn = new SqlConnection(“Server=LocalHost;Integrated Security=SSPI;Database=test”);
Conn.Open();
//增加数据
SqlCommand Insert = new SqlCommand(“insert into students(name,sex) values (‘小赵’,'男’)”, Conn);
Insert.ExecuteNonQuery();
//查询数据
SqlCommand Comm = new SqlCommand(“select * from students”,Conn);
SqlDataReader Da1 = Comm.ExecuteReader();
while(Da1.Read())
{
Response.Write(Da1["id"]);
Response.Write(Da1["name"]);
Response.Write(Da1["sex"]);
Response.Write(”
“);
}
Da1.Close();
//更新数据
SqlCommand update = new SqlCommand(“update students set name=’小王’,sex=’女’ where name=’小赵’”, Conn);
update.ExecuteNonQuery();
//查询数据
SqlDataReader Da2=Comm.ExecuteReader();
while(Da2.Read())
{
Response.Write(Da2["id"]);
Response.Write(Da2["name"]);
Response.Write(Da2["sex"]);
Response.Write(”
“);
}
Da2.Close();
//删除数据
SqlCommand delete = new SqlCommand(“delete from students where name=’小王’”, Conn);
delete.ExecuteNonQuery();
Response.Write(“数据已经被删除”);
Conn.Close();
}
5.什么是DataSet?
数据集(DataSet)是独立于数据存储区且与之不同的数据结构,是一种代表关系数据的内存驻留结构;
6.为什么要使用DataSet?
将数据库读到数据集,从而进行无连接的操作;
7.关于DataSet
DataSet包含DataTable,相当于数据库中的表,每个DataTable中又包括DataRow(行)和DataColumn(列),分别代表数据库中表的行和列。
8.什么是DataAdapter对象?
DataAdapter对象在源数据与DataSet之间起到了桥梁的作用;
9.DataAdapter的只要作用
DataAdapter对象会填充DataSet对象中的表,而且能读取缓存的更改并将其提交给数据库。
10.DataAdapter对象的两个主要方法:
Fill方法:填充数据集
Update方法:向数据库提交存储在DataSet中的更改。
实例操练:
protected void Page_Load(object sender, EventArgs e)
{
String myConn = System.Configuration.ConfigurationManager.ConnectionStrings["testStr"].ToString();
SqlConnection Conn = new SqlConnection(myConn);
Conn.Open();
SqlDataAdapter Da = new SqlDataAdapter(“select * from students”,Conn);
DataSet Ds = new DataSet();
Da.Fill(Ds, “info”);//填充DataSet
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[0].Rows[i]["name"]);
Response.Write(Ds.Tables[0].Rows[i]["sex"]);
Response.Write(”
“);
}
}
Conn.Close();
}
10.Update方法的原理
使用Update方法自动遍历DataTable中所有行,以检查需要对数据库做出的变动,它为每一个发生的更改的行调用Insert、Update或Delete命令;
11.SqlCommandBuilder类:自动生成单表命令并与SqlDataAdapter相关联
12.DataTAble Rows集合的三个常用的方法
Find方法:检索行
Add方法:创建行
Delete方法:删除行
13.实例操作:
protected void Page_Load(object sender, EventArgs e)
{
String myConn = System.Configuration.ConfigurationManager.ConnectionStrings["testStr"].ToString();
SqlConnection Conn = new SqlConnection(myConn);
Conn.Open();
SqlDataAdapter Da = new SqlDataAdapter(“select * from students”,Conn);
SqlCommandBuilder Cb = new SqlCommandBuilder(Da);//生成SQL命令并与SqlDataAdapter关联
DataSet Ds = new DataSet();
Da.Fill(Ds, “info”);//填充DataSet
//添加数据
DataRow dr = Ds.Tables["info"].NewRow();
dr["name"] = “美女”
dr["sex"] = “女”
Ds.Tables["info"].Rows.Add(dr);
//修改数据
Response.Write(“修改之前的数据为” + Ds.Tables["info"].Rows[0]["name"] + Ds.Tables["info"].Rows[0]["sex"]);
Response.Write(”
“);
Ds.Tables["info"].Rows[0]["name"]=”赵王”
Ds.Tables["info"].Rows[0][2]=”女”
Response.Write(“修改之后的数据为” + Ds.Tables["info"].Rows[0]["name"] + Ds.Tables["info"].Rows[0]["sex"]);
Response.Write(”
“);
//删除数据
Ds.Tables["info"].Rows[0].Delete();
Da.Update(Ds, “info”);
Response.Write(“数据已经被删除”);
Conn.Close();
}
转载请标明出处:萝卜根
原文地址请标明:原文地址