ASP.NET && 实验六 && ADO.NET数据库访问技术(一)

实验六  ADO.NET数据库访问技术(一)

 
一. 目的和要求
掌握使用ADO。NET访问SQL Server数据库.掌握使用ADO.NET进行增加、删除、修改数据的方法。

二.实验课时
2课时。

三.实验内容
1. 编写程序,创建一个使用DataGrid控件和DataReader显示位于”pubs”数据库中的”employee”表中的所有记录的Web应用程序。
ps:这个在实验课上用鼠标点点点就完成了,忘记截图了,叙述一下大体逻辑:
{
    1、添加GridView控件
    2、绑定数据源:数据库->sql->选择连接->数据库名->表格//大体上是这样的
    3、运行调试
}
2. 编写程序,创建一个使用SqlCommand对象对pubs数据库中的”employee”表进行增加、删除和修改记录的Web应用程序。
3. 编写程序,创建一个文本框接收用户输入信息,在’pubs’数据库中的“employee“表中根据用户输入的信息(emp_id)查找相应的记录。
4. 上机调试本章的例题。

//代码看似多,其实不多,主要是那些注释,为了完成王老师要求的注释风格,就随便添加了一些,可以不抄
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page 
{
	// 
	/// 保存连接
	/// 
	SqlConnection con;
	
	/// 
	/// 查询数据
	/// 
	void select()
	{
		
		string strtxt = "select * from employee where emp_id = 'EDF12345M'";
        sql = new SqlCommand(strtxt, con);
        SqlDataReader reader = sql.ExecuteReader();
        if(reader.Read())
        Response.Write(reader[0] + "\t" + reader[2]);
        con.Close();
	}

	/// 
	/// 插入数据
	/// 
	void insert()
	{
        string strtxt = "insert into employee values('EDF12345M','liuqian','M','qianqian','8','123','1231','1992-09-04 00:00:00.000')";//正常情况下可以成功,只可惜老师对主键的约数太强了,根本插不进去,万恶的主键,不过为了实验效果我这里就假装值已经插进去了
        SqlCommand sql = new SqlCommand(strtxt,con);
        con.Open();
        sql.ExecuteReader();
        con.Close();
	}
	
	/// 
	/// 删除数据
	/// 
	void delete()
	{
		string strtxt = "delete from employee where emp_id='EDF12345M'";
        sql = new SqlCommand(strtxt, con);
        con.Open();
        sql.ExecuteReader();
        con.Close();
	}
	
	/// 
	/// 修改数据库内容
	/// 
	void update()
	{
		//UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
		string strtxt = "update employee set fname='xiaoqian' where emp_id='EDF12345M'";
		SqlCommand sql = new SqlCommand(strtxt,con);
        con.Open();
        sql.ExecuteReader();
        con.Close();
	}

	/// 
	/// 测试用SqlCommend对数据库进行增删改查
	/// 
	///  Sender. 
	///  Arguments. 
    protected void btn_test_Click(object sender, EventArgs e)	
    {
		con = new SqlConnection("Server=.;Database=pubs;Integrated Security=SSPI;");
        select();
		insert();
		select();
		update();
		select();
		delete();
		select();
    }
	
	/// 
	/// 查询指定的数据
	/// 
	///  Sender. 
	///  Arguments. 
	protected void btn_select_Click(object sender, EventArgs e)
    {
        string command = "select * from employee where emp_id = '"+ TextBox1.Text +"'";
        SqlDataAdapter adp = new SqlDataAdapter(command, ConnectionString);
        DataSet ds = new DataSet();
        adp.Fill(ds, "employee");
        int num = ds.Tables["employee"].Columns.Count;
        string tmp = "";
        for (int i = 0; i < num; ++i)
        {
            tmp += ds.Tables["employee"].Rows[0][i].ToString() + '\t';
        }
        Response.Write(tmp);
        con.Close();
    }
}
5. 实验思考题:
1) ADO.NET对象模型有哪些主要组件?
    Connection对象: 与数据源建立连接。
    Command 对象:对数据源执行SQL命令并返回结果。
    DataReader对象: 读取数据源的数据,数据从头到尾依次读出。
    DataAdapter对象:对数据源执行操作并返回结果,写入DataSet。
    DataSet对象:服务器内存中的数据库
    DataView对象: 用于显示DataSet中的数据
2) ADO.NET中的什么对象支持数据的离线访问?
    DataSet对象    但是DataView的数据源可以是DataSet,这个有点纠结

你可能感兴趣的:(实验,ASP.NET)