ASP.NET ADO.NET数据访问技术(二 使用DataAdapter对象的 增删查改 )

一、DataAdapter相关介绍

使用DataAdapter对象查询数据库相当于 在客户端建立一个数据库分部(即DataSet),在总部查询信息后通过fill方法填充DataSet,然后我们操作数据库时不需要去数据库总部拿数据了,只需要去分部(DataSet)中取出数据即可

二、创建的相关对象

  1. DataSet 相当于数据库分部,可以存放多个数据表
  2. DataTable 从DataSet中复制一个数据表(只能是一个数据表)
  3. DataRow 存放DataTable中数据表的一行记录

三、使用DataAdapter

3.1、增

/*******************必不可少的***************************/
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
/*********************必不可少的*************************/

string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection sqlconn = new SqlConnection(sqlconnstr);
//建立DataSet对象
DataSet ds = new DataSet();
//建立DataTable对象
DataTable dtable;
//建立DataRow对象
DataRow drow;
//打开连接
sqlconn.Open();
//建立DataAdapter对象
SqlDataAdapter sqld = new SqlDataAdapter("select * from student", sqlconn);
//建立 CommandBuilder 对象来自动生成 DataAdapter 的 Command 命令,否则就要自己编写
//Insertcommand ,deletecommand , updatecommand 命令。
SqlCommandBuilder cb = new SqlCommandBuilder(sqld);
//用Fill方法返回的数据,填充DataSet,数据表取名为tabstudent
sqld.Fill(ds, "tabstudent");
//将数据表tabstudent的数据复制到DataTable对象
dtable = ds.Tables["tabstudent"];
//增加新记录
drow = ds.Tables["tabstudent"].NewRow();
//给该记录赋值
drow[0] = "19";
drow[1] = "陈峰";
drow[2] = "男";
ds.Tables["tabstudent"].Rows.Add(drow);
//提交更新
sqld.Update(ds, "tabstudent");
sqlconn.Close();
sqlconn = null;
Label1.Text = "增加成功";

3.2、删

/*******************必不可少的***************************/
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
/*********************必不可少的*************************/

string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection sqlconn = new SqlConnection(sqlconnstr);
DataSet ds = new DataSet();
DataTable dtable;
DataRowCollection coldrow;
DataRow drow;
sqlconn.Open();
//建立DataAdapter对象
SqlDataAdapter sqld = new SqlDataAdapter("select * from student", sqlconn);
//建立 CommandBuilder 对象来自动生成 DataAdapter 的 Command 命令,否则就要自己编写
//Insertcommand ,deletecommand , updatecommand 命令。
SqlCommandBuilder cb = new SqlCommandBuilder(sqld);
//用Fill方法返回的数据,填充DataSet,数据表取名为tabstudent
sqld.Fill(ds, "tabstudent");
dtable = ds.Tables["tabstudent"];
coldrow = dtable.Rows;
//逐行遍历,删除地址为空的记录
for (int inti = 0; inti < coldrow.Count; inti++)
{
    drow = coldrow[inti];
    if (drow["Adress"].ToString() == "")
        drow.Delete();
}
//提交更新
sqld.Update(ds, "tabstudent");
sqlconn.Close();
sqlconn = null;
Label1.Text = "删除成功";

3.3、查

/*******************必不可少的***************************/
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
/*********************必不可少的*************************/

string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnection sqlconn = new SqlConnection(sqlconnstr);
//建立DataSet对象
DataSet ds = new DataSet();
//建立DataTable对象
DataTable dtable;
//建立DataRowCollection对象
DataRowCollection coldrow;
//建立DataRow对象
DataRow drow;
//打开连接
sqlconn.Open();
//建立DataAdapter对象
SqlDataAdapter sqld = new SqlDataAdapter("select * from student", sqlconn);
//用Fill方法返回的数据,填充DataSet,数据表取名为tabstudent
sqld.Fill(ds, "tabstudent");
//将数据表tabstudent的数据复制到DataTable对象
dtable = ds.Tables["tabstudent"];
//用DataRowCollection对象获取这个数据表的所有数据行
coldrow = dtable.Rows;
//逐行遍历,取出各行的数据
for (int inti = 0; inti < coldrow.Count; inti++)
{
    drow = coldrow[inti];
    Label1.Text += "学号:" + drow[0];
    Label1.Text += " 姓名:" + drow[1];
    Label1.Text += " 性别:" + drow[2];
    Label1.Text += " 出生日期:" + drow[3];
    Label1.Text += " 地址:" + drow[4] + "<br />";
}
sqlconn.Close();
sqlconn = null;

3.4、改

/*******************必不可少的***************************/
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
/*********************必不可少的*************************/

string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
SqlConnection sqlconn = new SqlConnection(sqlconnstr);
//建立DataSet对象
DataSet ds = new DataSet();
//建立DataTable对象
DataTable dtable;
//建立DataRowCollection对象
DataRowCollection coldrow;
//建立DataRow对象
DataRow drow;
//打开连接
sqlconn.Open();
//建立DataAdapter对象
SqlDataAdapter sqld = new SqlDataAdapter("select * from student", sqlconn);
//自己定义Update命令,其中@NAME,@NO是两个参数
sqld.UpdateCommand = new SqlCommand("UPDATE student SET NAME = @NAME WHERE NO = @NO", sqlconn);
//定义@NAME参数,对应于student表的NAME列
sqld.UpdateCommand.Parameters.Add("@NAME", SqlDbType.VarChar, 50, "NAME");
//定义@NO参数,对应于student表的NO列,而且@NO是修改前的原值
SqlParameter parameter = sqld.UpdateCommand.Parameters.Add("@NO", SqlDbType.VarChar, 10);
parameter.SourceColumn = "NO";
parameter.SourceVersion = DataRowVersion.Original;
//用Fill方法返回的数据,填充DataSet,数据表取名为tabstudent
sqld.Fill(ds, "tabstudent");
//将数据表tabstudent的数据复制到DataTable对象
dtable = ds.Tables["tabstudent"];
//用DataRowCollection对象获取这个数据表的所有数据行
coldrow = dtable.Rows;
//修改操作,逐行遍历,取出各行的数据
for (int inti = 0; inti < coldrow.Count; inti++)
{
    drow = coldrow[inti];
    //给每位学生姓名后加上字母A
    drow[1]=drow[1]+"A";
}
//提交更新
sqld.Update(ds, "tabstudent");
sqlconn.Close();
sqlconn = null;
Label1.Text = "更新成功"; 

猜你喜欢

转载自blog.csdn.net/weixin_38420342/article/details/83374129
今日推荐