ADO.NET
1、什么是ADO.NET?
ADO.NET是一组用于和数据源进行交互的面向对象类库
2、ADO.NET主要对象有哪些?
Connection:用于连接到数据库和管理对数据库的事务
Command:用于对数据库发出SQL命令
DataReader:用于从数据源读取只进数据记录流
DataSet:用于对表单数据、XML数据和关系数据进行存储、远程处理和编程
DataAdapter:用于将数据推入DataSet,并使数据和数据库保持一致
3、Connection对象
访问数据库首先就要建立到操作对象的连接,这就是Connection对象,通常用的访问SQLServer的叫SqlConnection类,访问其他的叫OledbConnection类,如:Access,Oracle
Connection对象有两个方法:Open()和Close()
语法:
Data Sourse=(local);Initial Catalog=数据库名;Integrated Security=True;Persist Security Info=True;User ID=用户名;Password=密码
Integrated Security(集成安全)
Persist Security Info(保持安全信息)
1、Command对象的作用?
用于对数据库发出SQL命令,从而执行添加,修改,删除等操作
2、Command对象两个主要方法
ExecuteNonQueryfang方法:执行命令并返回受影响的行数
ExecuteReader方法:执行命令并返回生成的DataReader
3、DataReader对象作用?
返回一个来自数据命令的只读,只进的数据流
4、语法
SqlCommand 对象名=new SqlCommand("SQL语句",Connection实例化对象);
5、DataSet对象
1、什么是DataSet
数据集(DataSet)是独立于数据存储区且与之不同的数据结构,是一种代表关系数据的内存驻留结构
2、为什么要使用DataSet?
将数据库读到数据集,从而进行无连接的操作
3、 关于DataSet
DataSet是ADO.NET中关键对象,所有复杂的操作都要使用它。DataSet包含一组相关的DataTable对象,代表要使用的数据库表,每一个DataTable对象都有子DataRow和DataColumn对象,分别代表数据库的行和列。通过这些对象,可以获取表,行和列的所有元素。
6、DataAdapter
1、什么是DataAdapter对象?、
DataAdapter对象充当数据库和ADO.NET对象模型中断开连接的对象之间的桥梁
DataAdapter对象在DataSet与源数据之间起到桥梁的作用。
2、DataAdapter的主要作用
DataAdapter对象会填充DataSet对象中的表,而且能读取缓存的更改并将其提交给数据库
3、DataAdapter对象的两个主要方法
Fill方法:填充数据集
Updata方法:向数据库提交存储在DataSet中的更改
SqlCommandBuilder类:自动生成单表命令,在更新单一表的简单情况下,我们不需要知道如何编写SQL语句以完成更新。
8、DataTableRows集合的三个常用方法
Fill方法: 检索行
Add方法: 创建行
Delete方法: 删除行
ADO.NET是一组用于和数据源进行交互的面向对象类库
2、ADO.NET主要对象有哪些?
Connection:用于连接到数据库和管理对数据库的事务
Command:用于对数据库发出SQL命令
DataReader:用于从数据源读取只进数据记录流
DataSet:用于对表单数据、XML数据和关系数据进行存储、远程处理和编程
DataAdapter:用于将数据推入DataSet,并使数据和数据库保持一致
3、Connection对象
访问数据库首先就要建立到操作对象的连接,这就是Connection对象,通常用的访问SQLServer的叫SqlConnection类,访问其他的叫OledbConnection类,如:Access,Oracle
Connection对象有两个方法:Open()和Close()
语法:
Data Sourse=(local);Initial Catalog=数据库名;Integrated Security=True;Persist Security Info=True;User ID=用户名;Password=密码
Integrated Security(集成安全)
Persist Security Info(保持安全信息)
public partial class ADO_connectin : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string connstr = System.Configuration.ConfigurationManager.ConnectionStrings["pubconn"].ToString();
SqlConnection mystr = new SqlConnection(connstr);
//方法二:SqlConnection mystr = new SqlConnection("Data Source=.;Initial Catalog=pubs;Persist Security Info=True;User ID=sa;Password=123");
//方法三:SqlConnection mystr = new SqlConnection();
// mystr.ConnectionString = ConfigurationManager.ConnectionStrings["pubconn"].ToString();
try
{
mystr.Open();
Response.Write("<script language='javascript'>alert('连接数据库成功')</script>");
mystr.Close();
Label1.Text = "数据库已经关闭";
}
catch
{
Response.Write("<script language='javascript'>alert('连接数据库失败')</script>");
}
}
}
4、Command、DataReader对象{
protected void Page_Load(object sender, EventArgs e)
{
string connstr = System.Configuration.ConfigurationManager.ConnectionStrings["pubconn"].ToString();
SqlConnection mystr = new SqlConnection(connstr);
//方法二:SqlConnection mystr = new SqlConnection("Data Source=.;Initial Catalog=pubs;Persist Security Info=True;User ID=sa;Password=123");
//方法三:SqlConnection mystr = new SqlConnection();
// mystr.ConnectionString = ConfigurationManager.ConnectionStrings["pubconn"].ToString();
try
{
mystr.Open();
Response.Write("<script language='javascript'>alert('连接数据库成功')</script>");
mystr.Close();
Label1.Text = "数据库已经关闭";
}
catch
{
Response.Write("<script language='javascript'>alert('连接数据库失败')</script>");
}
}
}
1、Command对象的作用?
用于对数据库发出SQL命令,从而执行添加,修改,删除等操作
2、Command对象两个主要方法
ExecuteNonQueryfang方法:执行命令并返回受影响的行数
ExecuteReader方法:执行命令并返回生成的DataReader
3、DataReader对象作用?
返回一个来自数据命令的只读,只进的数据流
4、语法
SqlCommand 对象名=new SqlCommand("SQL语句",Connection实例化对象);
protected void Page_Load(object sender, EventArgs e)
{
string constr = System.Configuration.ConfigurationManager.ConnectionStrings["pubconn"].ToString();
SqlConnection mystr = new SqlConnection(constr);
mystr.Open();
//添加数据
SqlCommand Insert = new SqlCommand("Insert student (id,name,sex) values ('056','李明','男')", mystr);
Insert.ExecuteNonQuery();
//查询数据
SqlCommand cmd = new SqlCommand("select * from student", mystr);
SqlDataReader dr1 = cmd.ExecuteReader();
while (dr1.Read())
{
Response.Write(dr1["id"]);
Response.Write(dr1["name"]);
Response.Write(dr1["sex"]);
Response.Write("<br>");
}
dr1.Close();
//修改数据
SqlCommand updata=new SqlCommand("update student set name='王晓龙',id='098' where name='李明'",mystr);
updata.ExecuteNonQuery();
//查询数据
SqlDataReader dr2 = cmd.ExecuteReader();
while (dr2.Read())
{
Response.Write(dr2["id"]);
Response.Write(dr2["name"]);
Response.Write("<br>");
}
dr2.Close();
//删除数据
SqlCommand delect = new SqlCommand("delete from student where name='王晓龙'", mystr);
delect.ExecuteNonQuery();
Response.Write("数据删除成功");
mystr.Close();
}
{
string constr = System.Configuration.ConfigurationManager.ConnectionStrings["pubconn"].ToString();
SqlConnection mystr = new SqlConnection(constr);
mystr.Open();
//添加数据
SqlCommand Insert = new SqlCommand("Insert student (id,name,sex) values ('056','李明','男')", mystr);
Insert.ExecuteNonQuery();
//查询数据
SqlCommand cmd = new SqlCommand("select * from student", mystr);
SqlDataReader dr1 = cmd.ExecuteReader();
while (dr1.Read())
{
Response.Write(dr1["id"]);
Response.Write(dr1["name"]);
Response.Write(dr1["sex"]);
Response.Write("<br>");
}
dr1.Close();
//修改数据
SqlCommand updata=new SqlCommand("update student set name='王晓龙',id='098' where name='李明'",mystr);
updata.ExecuteNonQuery();
//查询数据
SqlDataReader dr2 = cmd.ExecuteReader();
while (dr2.Read())
{
Response.Write(dr2["id"]);
Response.Write(dr2["name"]);
Response.Write("<br>");
}
dr2.Close();
//删除数据
SqlCommand delect = new SqlCommand("delete from student where name='王晓龙'", mystr);
delect.ExecuteNonQuery();
Response.Write("数据删除成功");
mystr.Close();
}
5、DataSet对象
1、什么是DataSet
数据集(DataSet)是独立于数据存储区且与之不同的数据结构,是一种代表关系数据的内存驻留结构
2、为什么要使用DataSet?
将数据库读到数据集,从而进行无连接的操作
3、 关于DataSet
DataSet是ADO.NET中关键对象,所有复杂的操作都要使用它。DataSet包含一组相关的DataTable对象,代表要使用的数据库表,每一个DataTable对象都有子DataRow和DataColumn对象,分别代表数据库的行和列。通过这些对象,可以获取表,行和列的所有元素。
6、DataAdapter
1、什么是DataAdapter对象?、
DataAdapter对象充当数据库和ADO.NET对象模型中断开连接的对象之间的桥梁
DataAdapter对象在DataSet与源数据之间起到桥梁的作用。
2、DataAdapter的主要作用
DataAdapter对象会填充DataSet对象中的表,而且能读取缓存的更改并将其提交给数据库
3、DataAdapter对象的两个主要方法
Fill方法:填充数据集
Updata方法:向数据库提交存储在DataSet中的更改
protected void Page_Load(object sender, EventArgs e)
{
string constr = System.Configuration.ConfigurationManager.ConnectionStrings["pubconn"].ToString();
SqlConnection mystr = new SqlConnection(constr);
mystr.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from student", mystr);
DataSet ds = new DataSet();
da.Fill(ds, "student");
if (ds.Tables[0].Rows.Count == 0)
{
Response.Write("数据库中无数据");
}
else
{
for (int i = 0; i < ds.Tables["student"].Rows.Count; i++)
{
Response.Write(ds.Tables["student"].Rows[i][1]);
Response.Write(ds.Tables[0].Rows[i]["sex"]);
Response.Write("<br>");
}
}
mystr.Close();
}
7、SqlCommandBuilder类{
string constr = System.Configuration.ConfigurationManager.ConnectionStrings["pubconn"].ToString();
SqlConnection mystr = new SqlConnection(constr);
mystr.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from student", mystr);
DataSet ds = new DataSet();
da.Fill(ds, "student");
if (ds.Tables[0].Rows.Count == 0)
{
Response.Write("数据库中无数据");
}
else
{
for (int i = 0; i < ds.Tables["student"].Rows.Count; i++)
{
Response.Write(ds.Tables["student"].Rows[i][1]);
Response.Write(ds.Tables[0].Rows[i]["sex"]);
Response.Write("<br>");
}
}
mystr.Close();
}
SqlCommandBuilder类:自动生成单表命令,在更新单一表的简单情况下,我们不需要知道如何编写SQL语句以完成更新。
8、DataTableRows集合的三个常用方法
Fill方法: 检索行
Add方法: 创建行
Delete方法: 删除行
protected void Page_Load(object sender, EventArgs e)
{
string str = System.Configuration.ConfigurationManager.ConnectionStrings["pubconn"].ToString();
SqlConnection mystr = new SqlConnection(str);
mystr.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from student", mystr);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds,"student");
//添加数据
DataRow dr = ds.Tables["student"].NewRow();
dr["id"] = "043";
dr["name"] = "王晓梅";
dr["sex"]="女";
ds.Tables["student"].Rows.Add(dr);
//修改数据
Response.Write("修改前的数据为:"+ds.Tables[0].Rows[0][0] + ds.Tables[0].Rows[0][1] + ds.Tables[0].Rows[0][2]+"<br>");
ds.Tables[0].Rows[0][1] = "张居正";
ds.Tables[0].Rows[0][2] = "男";
Response.Write("修改后的数据为:" + ds.Tables[0].Rows[0][0] + ds.Tables[0].Rows[0][1] + ds.Tables[0].Rows[0][2] + "<br>");
//删除数据
ds.Tables[0].Rows[0].Delete();
Response.Write(" 数据已经删除");
da.Update(ds, "student");
mystr.Close();
}
{
string str = System.Configuration.ConfigurationManager.ConnectionStrings["pubconn"].ToString();
SqlConnection mystr = new SqlConnection(str);
mystr.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from student", mystr);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds,"student");
//添加数据
DataRow dr = ds.Tables["student"].NewRow();
dr["id"] = "043";
dr["name"] = "王晓梅";
dr["sex"]="女";
ds.Tables["student"].Rows.Add(dr);
//修改数据
Response.Write("修改前的数据为:"+ds.Tables[0].Rows[0][0] + ds.Tables[0].Rows[0][1] + ds.Tables[0].Rows[0][2]+"<br>");
ds.Tables[0].Rows[0][1] = "张居正";
ds.Tables[0].Rows[0][2] = "男";
Response.Write("修改后的数据为:" + ds.Tables[0].Rows[0][0] + ds.Tables[0].Rows[0][1] + ds.Tables[0].Rows[0][2] + "<br>");
//删除数据
ds.Tables[0].Rows[0].Delete();
Response.Write(" 数据已经删除");
da.Update(ds, "student");
mystr.Close();
}