ASP.NET 7 && 实验七 && ADO.NET数据库访问技术(二)

实验七  ADO.NET数据库访问技术(二)
一. 目的和要求

  掌握DataReader, DataSet, DataTable, DataAdapter以及DataView对象. 掌握使用存储过程的方法.
二.实验课时
  2课时。
三.实验内容
  1. 编写程序,创建一个使用DataGrid控件和DataSet显示位于”pubs”数据库中的”jobs”表中的所有记录的Web应用程序。
  2. 编写程序,创建一个使用SqlAdapter对象对pubs数据库中的”jobs”表进行增加、删除和修改记录的Web应用程序。 
  3. 编写程序,创建一个DataView对象,在’pubs’数据库中的“employee“表查找job_id>10并按fname降序输出相应的记录。
  4. 编写程序,在pubs数据库中创建一存储过程,用来显示employee表中所有记录.然后在ADO.NET中执行该存储过程.   (存储过程如下:)

    create procedure aaa as select * from employee

代码:

//本代码按照实验要求写的,不过有些地方为了减少几十行的代码用了十分猥琐的方法。。。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

namespace testSqlDataAdapter
{
    public partial class _Default : System.Web.UI.Page
    {
        SqlConnection con;
        string command = "select * from spt_values";

        protected void Page_Load(object sender, EventArgs e)
        {
            con = new SqlConnection(@"Server=.;Database=jobs;Integrated Security=SSPI;");
            string command = "select * from jobs";
            SqlDataAdapter adp = new SqlDataAdapter(command, con);
            con.Open();
            DataSet ds = new DataSet();
            adp.Fill(ds, "jobs");
            GridView1.DataSource = ds.Tables["jobs"];
            GridView1.DataBind();
            con.Close();
        }

        /// <summary>
        /// 插入数据
        /// </summary>
        void insert()
        {
            SqlDataAdapter adp = new SqlDataAdapter(command, con);
            con.Open();
            DataSet ds = new DataSet();
            adp.InsertCommand = new SqlCommand("insert into jobs values('15','liuqian','25','100');", con);
            adp.Fill(ds, "jobs");
            DataTable table = ds.Tables["jobs"];
            table.Rows.Add(table.NewRow());
            adp.Update(ds, "jobs");
            con.Close();
        }

        /// <summary>
        /// 删除数据
        /// </summary>
        void delete()
        {
            SqlDataAdapter adp = new SqlDataAdapter(command, con);
            con.Open();
            DataSet ds = new DataSet();
            adp.DeleteCommand = new SqlCommand("delete from employee where job_id = '15';", con);
            adp.Fill(ds, "jobs");
            DataTable table = ds.Tables["jobs"];
            table.Rows[0].Delete();
            adp.Update(ds, "jobs");
            con.Close();
        }

        /// <summary>
        /// 修改数据库内容
        /// </summary>
        void update()
        {
            SqlDataAdapter adp = new SqlDataAdapter(command, con);
            con.Open();
            DataSet ds = new DataSet();
            adp.UpdateCommand = new SqlCommand("update jobs set min_lvl='26' where job_id = '15'; ", con);
            adp.Fill(ds, "jobs");
            DataTable table = ds.Tables["jobs"];
            table.Rows[0][0] = "12";
            adp.Update(ds, "jobs");
            con.Close();
        }

        /// <summary>
        /// 用SqlDataAdapter对数据库增删改查
        /// </summary>
        protected void btnAdapter_Click(object sender, EventArgs e)
        {
            insert();
            update();
            delete();
        }

        /// <summary>
        /// 用SqlDataAdapter按序查询指定的数据并输出
        /// </summary>
        protected void btnSelect_Click(object sender, EventArgs e)
        {
            string command = "select * from employee where job_id>10 order by fname desc ";
            SqlDataAdapter adp = new SqlDataAdapter(command, con);
            con.Open();
            DataSet ds = new DataSet();
            adp.Fill(ds, "jobs");
            GridView2.DataSource = ds.Tables["jobs"];
            GridView2.DataBind();
            con.Close();
        }

        /// <summary>
        /// 调用存储过程
        /// </summary>
        protected void btnProcedure_Click(object sender, EventArgs e)
        {
            SqlCommand sql = con.CreateCommand();
            sql.CommandType = CommandType.StoredProcedure;
            sql.CommandText = "aaa";
            con.Open();
            SqlDataReader reader = sql.ExecuteReader();
            if (reader.Read())
            {
                Response.Write(reader[1]);
            }
            con.Close();
        }
    }
}
6. 实验思考题:
1. DataAdapter对象的作用是什么?
    SqlDataAdapter是 DataSet和 SQL Server之间的桥接器,用于检索和保存数据。
2. DataReader的特点是什么?
    DataReader从数据源中一条一条的读取数据,整个过程都要与数据库保持连接。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 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(); }

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值