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 
{
	// <summary>
	/// 保存连接
	/// </summary>
	SqlConnection con;
	
	/// <summary>
	/// 查询数据
	/// </summary>
	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();
	}

	/// <summary>
	/// 插入数据
	/// </summary>
	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();
	}
	
	/// <summary>
	/// 删除数据
	/// </summary>
	void delete()
	{
		string strtxt = "delete from employee where emp_id='EDF12345M'";
        sql = new SqlCommand(strtxt, con);
        con.Open();
        sql.ExecuteReader();
        con.Close();
	}
	
	/// <summary>
	/// 修改数据库内容
	/// </summary>
	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();
	}

	/// <summary>
	/// 测试用SqlCommend对数据库进行增删改查
	/// </summary>
	/// <param name='sender'> Sender. </param>
	/// <param name='args'> Arguments. </param>
    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();
    }
	
	/// <summary>
	/// 查询指定的数据
	/// </summary>
	/// <param name='sender'> Sender. </param>
	/// <param name='args'> Arguments. </param>
	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,这个有点纠结

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1,主界面 2查询功能 ‘ private void chaxun_Click(object sender, System.EventArgs e) { SqlConnection thisConnection=new SqlConnection("Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=李梦然07060021"); //表示到SQL Server的一个实例的连接 SqlCommand thisCommand=new SqlCommand("select * from student where sno='"+textBox1.Text+"'",thisConnection); SqlDataAdapter thisAdapter=new SqlDataAdapter(); thisAdapter.SelectCommand=thisCommand; DataSet thisDataSet=new DataSet(); thisConnection.Open(); thisAdapter.Fill(thisDataSet, "student"); //在运行时设置 dataGrid1的数据源和数据成员属性,即在dataGrid1中显示数据集中的数据 dataGrid1.SetDataBinding(thisDataSet,"student"); thisConnection.Close(); } 3浏览功能 private void liulan_Click(object sender, System.EventArgs e) { //用SqlConnection对象连接SQL Server数据库魏菊丽20086666 SqlConnection thisConnection=new SqlConnection("Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=李梦然07060021"); SqlDataAdapter thisAdapter=new SqlDataAdapter(); DataSet thisDataSet=new DataSet(); //创建并返回一个与SqlConnection相关联的SqlCommand 对象 SqlCommand thisCommand=thisConnection.CreateCommand(); thisCommand.CommandText="select * from student";//获取或设置要对数据源执行的SQL语句 thisAdapter.SelectCommand =thisCommand ;//获取一个SQL语句,用于在数据源中选择记录 thisConnection.Open();//打开本次设置的数据库连接 thisAdapter.Fill(thisDataSet,"student");//将以上在数据源student中选择的记录的所有行填充到数据集中。 thisConnection.Close();//断开本次数据库连接 //在运行时设置 dataGrid1的数据源和数据成员属性,即在dataGrid1中显示数据集中的数据 dataGrid1.SetDataBinding(thisDataSet,"student"); } 4,插入一个新列 private void button1_Click(object sender, System.EventArgs e) { SqlConnection thisConnection=new SqlConnection("Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=李梦然07060021"); SqlDataAdapter thisAdapter=new SqlDataAdapter(); DataSet thisDataSet=new DataSet(); SqlCommand thisCommand=thisConnection.CreateCommand(); thisCommand.CommandText="select * from student "; thisAdapter.SelectCommand =thisCommand ; thisConnection.Open(); SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter); thisAdapter.Fill(thisDataSet, "student"); DataRow thisRow=thisDataSet.Tables["student"].NewRow();//在 数据集的student Table中创建新行 thisRow["sno"]="21";thisRow["sname"]="李梦然";thisRow["ssex"]="男";thisRow["thirthday"]="1987-7-31";thisRow["class"]="95001";//设置新行中的个字段值 thisDataSet.Tables["student"].Rows.Add(thisRow);//将新行添加到数据集的student Table中 thisAdapter.Update(thisDataSet,"student");// 修改数据库表 //以下显示添加后表中的数据 thisCommand.CommandText="select * from student "; thisAdapter.SelectCommand =thisCommand ; dataGrid1.SetDataBinding(thisDataSet,"student"); thisConnection.Close(); }
ASP.NET访问数据库通常有两种方式:使用 ADO.NET 或使用 Entity Framework。 1. 使用 ADO.NET ADO.NET是一种数据访问技术,用于访问和操作关系型数据库。以下是使用 ADO.NET 访问数据库的一些基本步骤: - 引用 System.Data 命名空间。 - 创建一个连接字符串,指定数据库的位置、凭据和其他选项。 - 创建一个 Connection 对象,使用连接字符串打开数据库连接。 - 创建一个 Command 对象,执行 SQL 语句,返回一个 DataReader 对象。 - 使用 DataReader 对象读取和处理查询结果。 - 关闭 DataReader 和 Connection 对象。 以下是一个使用 ADO.NET 访问 SQL Server 数据库的示例: ``` using System.Data.SqlClient; string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;"; string queryString = "SELECT FirstName, LastName FROM Customers"; SqlConnection connection = new SqlConnection(connectionString); SqlCommand command = new SqlCommand(queryString, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine(reader["FirstName"].ToString() + " " + reader["LastName"].ToString()); } reader.Close(); connection.Close(); ``` 2. 使用 Entity Framework Entity Framework 是一种 ORM(对象关系映射)框架,它允许开发人员使用 .NET 对象来表示和操作数据库中的数据。以下是使用 Entity Framework 访问数据库的一些基本步骤: - 安装 Entity Framework NuGet 包。 - 创建一个数据模型,表示数据库中的表和关系。 - 创建一个 DbContext 对象,表示数据库的上下文环境。 - 使用 DbContext 对象查询和操作数据。 以下是一个使用 Entity Framework 访问 SQL Server 数据库的示例: ``` using System.Data.Entity; public class Customer { public int CustomerId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } public class CustomerContext : DbContext { public DbSet<Customer> Customers { get; set; } } string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;"; using (var context = new CustomerContext(connectionString)) { var customers = context.Customers.ToList(); foreach (var customer in customers) { Console.WriteLine(customer.FirstName + " " + customer.LastName); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值