//==========动态程序设计部分================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsApplication1
{
    public partial class Form14 : Form
    {
        public Form14()
        {
            InitializeComponent();
        }
        Buessiness teacher = new Buessiness();
        Mydatabase DB = new Mydatabase();
        /// <summary>
        ///  dataGridView1的数据绑定事件编码
        /// </summary>
        public void bind(int i)
        {
            string sql = "";
            if (i == 1)
            {
                sql = "select tcno,sktime from tc where tno=2 and cno in (select distinct cno from sc where isposted=1) order by tcno asc";
            }
            if (i == 2)
            {
                string skxq = comboBox1.SelectedValue.ToString();
                sql = "select tcno,sktime from tc where tno=2 and cno in (select distinct cno from sc where isposted=1) and skxq=" + skxq + " order by tcno desc";
            }
            if (i == 3)
            {
                string skbj = comboBox2.SelectedValue.ToString();
                sql = "select tcno,sktime from tc where tno=2 and cno in (select distinct cno from sc where isposted=1) and bno=" + skbj + " order by tcno desc";
            }
            DataTable dt = DB.GetDataTable(sql);
            dataGridView1.DataSource = dt;
            dataGridView1.AllowUserToAddRows = false;
        }
        /// <summary>
        /// 初始化事件
        /// </summary>
        private void Form14_Load(object sender, EventArgs e)
        {
            //首先,将教师的信息显示出来。假设我们进入系统教师的ID编号是2号,来自teacher表
            int user_id = 2;
            int dno, xb;//变量表示为单位编号和系部编号
            string zc, degree, dname, tname;
            //变量表示:职称、学位信息、单位名称和教师姓名
          teacher.Getteacherinfo(user_id, out dno, out xb, out zc, out degree, out dname, out tname);
            label6.Text = Convert.ToString(user_id).Trim();
            label7.Text = tname.Trim();
            label8.Text = degree.Trim();
            label9.Text = dname.Trim();
            label10.Text = zc.Trim();
            //其次,添加前五个学期的信息到comboBox1
            string sql2 = "select distinct top 5 skxq,SUBSTRING(skxq,1,4)+'-'+cast((CAST (SUBSTRING(skxq,1,4) AS int)+1) as varchar(10))+'学年第'+SUBSTRING(skxq,5,1)+'学期' as skxqname  from tc order by skxq desc";
            DataSet ds1 = DB.GetDataSet(sql2);
            comboBox1.DataSource = ds1.Tables[0];
            comboBox1.DisplayMember = "skxqname";
            comboBox1.ValueMember = "skxq";
            //然后,添加按照班级查询信息
            string sql = "select bno,bname from class where bno in(select bno from tc where tno=2)";
            DataSet ds2 = DB.GetDataSet(sql);
            comboBox2.DataSource = ds2.Tables[0];
            comboBox2.DisplayMember = "bname";
            comboBox2.ValueMember = "bno";
            //最后,显示电子网格中的数据信息
            bind(1);
        }
       
      private void dataGridView1_RowPrePaint_1(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            int k = dataGridView1.Rows.Count;
            if (e.RowIndex != -1)
            {
                DataGridViewRow DGrow = dataGridView1.Rows[e.RowIndex];
                int i = Convert.ToInt32(DGrow.Cells["tcno"].Value);
                //此处需要获取课程表的课程性质名称
                int cno, tno, sktime, bno, zt, schno, stunum, yy, wy, ztbk, stunumbk, yybk, wybk, ztqk, stunumqk, yyqk, wyqk;
                string skxq, tname, cname, bname, skxqn, schname;
                teacher.GetCourselist(i, out cno, out tno, out skxq, out sktime, out bno, out tname, out cname, out bname, out skxqn, out zt, out schno, out schname, out stunum, out yy, out wy, out ztbk, out stunumbk, out yybk, out wybk, out ztqk, out stunumqk, out yyqk, out wyqk);
                DGrow.Cells["skxq"].Value = skxqn;
                DGrow.Cells["banji"].Value = bname;
                DGrow.Cells["school"].Value = schname;
                DGrow.Cells["coursename"].Value = cname;
                DGrow.Cells["sktime"].Value = sktime.ToString();
                DGrow.Cells["stunum"].Value = stunum.ToString();
                DGrow.Cells["yy"].Value = yy.ToString();
                DGrow.Cells["wy"].Value = wy.ToString();
            }
        }
        /// <summary>
        /// 按照学期信息查询
        /// </summary>
        private void button1_Click(object sender, EventArgs e)
        {
            bind(2);
        }
        /// <summary>
        /// 按照课程查询
        /// </summary>
        private void button2_Click(object sender, EventArgs e)
        {
            bind(3);
        }
        /// <summary>
        ///查询全部
        /// </summary>
        private void button3_Click(object sender, EventArgs e)
        {
            bind(1);
        }
    }

}

运行后的效果如图4-93所示
图4-93 程序执行效果图

4-4  本章小结

ADO.NET小结,请参加图4-94所示:
图4-94 ADO.NET总结图
图中内部箭头表示应用程序从数据库读取数据,外围箭头表示从应用程序向数据库写数据。对于本章知识点而言,涉及面广,知识结构复杂,但回头总结我们不难发现,以下的知识点是学习本章知识的重点和难点:
n在DataSet对象内表示的数据是数据库的部分或全部的断开式内存副本
nDataAdapter对象用来填充数据集和用来更新数据集到数据库,这样方便了数据库和数据集之间的交互
n类型化数据集对象是DataSet类的派生类的实例,这些类都基于XML结构
nDataTable表示一个内存数据表,而DataColumn表示DataTable中列的结构
nDataView是DataTable中存储的数据的表示层
nDataReader对象提供只进、只读和连接式数据访问,并要求使用专用的数据连接
nDataReader对象提供检索强类型化数据的方法
n在数据库编程中使用数据绑定控件时, DataGridView控件是Visual Studio .NET中提供的最通用、最强大和最灵活的控件
nDataGridView控件以表的形式显示数据,并根据需要支持数据编辑功能,如插入、更新、删除、排序和分页
n使用DataSource属性为DataGridView控件设置一个有效的数据源
n调用Update()方法来执行相应的插入、更新和删除操作时,将执行DataAdapter的InsertCommand、UpdateCommand和DeleteCommand属性
n定制DataGridView界面
 
课 后 练 习
1、本练习目标是要求编写一个应用程序,可以添加、修改、删除学生基本信息。用户界面如图4-95所示,数据库为school1,仅用了两个表,mz是表示民族的表,student是表示学生的表。具体字段设计情况请参见图4-96,数据库环境是SQL Server 2005。
图4-95 学生基本信息应用程序界面图
图4-96 数据库设计图
2、本练习目标是要求编写一个应用程序,实现可以添加、修改、删除、查询数据库中学生基本信息的功能。用户界面如图4-97所示,数据库为图4-96所示。
图4-97 学生基本信息应用程序界面图

本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/216112,如需转载请自行联系原作者

4-2 ADO.NET-查询和检索数据13相关推荐

  1. 4-2   ADO.NET-查询和检索数据1

    4-2          ADO.NET-查询和检索数据<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:offic ...

  2. 4-2 ADO.NET-查询和检索数据5

    <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />4-2 ...

  3. mysql第四章分页显示查询出租房屋信息_MYSQL必知必会读书笔记第四章之检索数据...

    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用Select语句返回的数据,可能会发现显 ...

  4. python能查询MySQL视图_python - 在使用Django的视图中,如何从mysql检索数据,并显示它_python_酷徒编程知识库...

    这是模型:from django.db import models # Create your models here. class Contact(models.Model): name = mod ...

  5. 第六章 使用ADO.NET查询和操作数据

    1.StringBuilder类--定义可变字符串 做到既重复修改,又不创建新的对象(与String类的区别) 常用方法: 1) Append()在结尾追加 2) Insert()在指定位置插入指定字 ...

  6. SQL 100+个最佳入门案例实践(覆盖Oralce、SQL Server、Mysql)之基础操作_1_检索数据

    SQL基础操作_1_检索数据 目录 7.1.1 数据集 7.1.2 学生选课关系表 7.1.3 供应商关系表 7.2.1 从表中查询所有行和列 7.2.2 从表中查询部分行 7.2.3 查询满足某个条 ...

  7. ADO.Net 缓冲 插入大型数据

    ADO.Net 缓冲 插入大型数据 Database, C#, ASP.NET 2004-8-9 | 16:58 通过插入或更新带有字符串值或字节数组(取决于数据库中的字段类型)的字段,可以将二进制大 ...

  8. mysql-3 检索数据(1)

    SELECT 语句 SELECT检索表数据,必须至少给出两条信息--------想选择什么,以及从什么地方选择. 检索一个列 SELECT prod_name FROM products; 上述语句利 ...

  9. Oracle入门(十四G)之PL / SQL中检索数据

    一.PL / SQL中检索数据 (1)PL / SQL中的SQL语句 可以在PL / SQL中使用以下几种SQL语句: •SELECT从数据库检索数据. •DML语句,例如INSERT,UPDATE和 ...

最新文章

  1. 为什么我要放弃javaScript数据结构与算法(第二章)—— 数组
  2. hive(4)——元数据概述
  3. “==”和“===”,难道不是多一个的区别吗?
  4. 消息中间件学习总结(10)——Kafka、RabbitMQ、RocketMQ消息中间件的消息发送性能对比
  5. Spring @Autowired 调用别的包下的Bean 解决方法
  6. 13 个设计 REST API 的最佳实践
  7. 高级GIS-0.整体裁剪
  8. 苹果亮度自动调节怎么关闭_iPhone 总是自动亮屏,该怎么关闭?
  9. 在安装VC2012上再安装VC2010时连接出错解决
  10. 通过修改dat文档对植物大战僵尸关卡数进行修改
  11. 如何打开.json文件
  12. 将孤独视作挑战,倾听内心,自我对话
  13. 星际争霸2 AI 开发探索与展望
  14. C语言基础题集(课前:一维数组,二维数组)
  15. SDRAM学习(五)——串口传图
  16. 【DL】第 6 章:文本生成转换器
  17. Win7系统网络连接图标显示红叉但可以正常上网怎么办
  18. php模拟彩票生成器,一种彩票号码生成器的制作方法
  19. 文档(Documents), 字段(Fields), 及模式设计(Schema Design)
  20. 注册服务时,id和ref是什么

热门文章

  1. 高性能IO设计的Reactor和Proactor模式(转)
  2. ArcGIS API for Silverlight中legend控件显示图例问题
  3. 机器学习基石-作业三-第2题分析以及通过H证明EIN的讨论
  4. jQuery教程05-层级选择器
  5. 云服务器太卡,云服务器解决io过高导致的命令卡顿
  6. 山西计算机工程师职称英语,山西中级工程师职称在线查询
  7. python输入输出代码_python基本输入输出代码示例
  8. c语言链表内存分配失败,链表的C语言实现之动态内存分配
  9. java 批量提交_【INSERT】逐行提交、批量提交及极限提速方法
  10. 计算机上网络接口层,2016计算机专业知识:TCP/IP 各层功能