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

简介:

2.案例学习:DataGridView基本的数据操作

    本实验目标是通过本案例您将学习了解到:
n DataGridView 的数据绑定技术;
n 数据上下顶底的移动技术;
n DataGridView 的更新和删除技术;
n window 控件的综合应用。
用户界面如图462所示:
4-62  基本的数据操作应用程序界面图
u 实验步骤(1):
VS . NET  2005中新建一个名为示例5的基于 Windows 的项目。将默认窗体重命名为 form8 . cs
u 实验步骤(2):
从工具箱之中拖拽一个 GroupBox 控件到 From 窗体, Text 属性设置为“数据信息显示区”;向这个 GroupBox 控件拖拽一个 dataGridView 控件, ColumnHeadersHeightSizeMode 属性设置为“ AutoSize ”, Dock 属性设置为“ Fill ”, SelectionMode 属性设置为“ FullRowSelect ”;还要向这个 GroupBox 控件拖拽七个 Button 控件, text 属性分别为“ |< ”、“ < ”、“ > ”、“ >| ”、“更新 (U) ”、“删除 (D) ”、“退出 (E) ”;另外还要向 Form 窗体下侧添加一个 StatusStrip 控件,选中这个 StatusStrip 控件,在右侧属性栏找到 Items 属性,点击右侧的“ ”按钮进入项目集合编辑器,在下拉列表框选中“ StatusLabel ”后点击旁边的“添加”按钮,成员栏出现一个“ ToolStripStatusLabel ”项,再一次在下拉列表框选中“ ToolStripProgressBar ”后点击旁边的“添加”按钮,成员栏出现一个“ ToolStripProgressBar ”项。
u 实验步骤(3):
数据库的设计参见图463
4-63 数据库设计图
数据库为 school1 ,仅用了两个表, mz 是表示民族的表, student 是表示学生的表。具体字段设计情况请参见图463。数据库环境是 SQL   Server  2005
u 实验步骤(4):
鼠标右击项目,在弹出的菜单中选择“添加”、“新建项”,在弹出的“添加新项”窗体中选择“代码文件”,名称改为“ DataBase .cs”,点击“添加”按钮,完成添加。该类库文件前面已有论述,此处不再复述。
u 实验步骤(5):
用鼠标双击所有Button控件,进入.cs文件编辑状态准备进行开发。代码加下:
//========== 动态程序部分================
using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Data;
using  System.Data.SqlClient;
using  System.Drawing;
using  System.Text;
using  System.Windows.Forms;
 
namespace  WindowsApplication1
{
    public partial class Form8 : Form
    {
        public Form8()
        {
            InitializeComponent();
        }
       
        DataBase mydatabase = new DataBase();
        // 注意:下面两个变量ds,dt很重要,负责保留状态信息。
        public DataSet ds = new DataSet();
        public DataTable dt = new DataTable();
        /// <summary>
        ///  更新数据信息
        /// </summary>
        public void updatData()
        {
            String sql = "select * from student";
            if (mydatabase.doUpdate(ds, sql, dt.TableName))
            {
MessageBox .Show(" 数据更新成功" " 提示" MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show(" 数据更新失败,请检查数据是否合法!" " 提示" MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        /// <summary>
        ///  初始化加载事件代码
        /// </summary>
        private void Form8_Load(object sender, EventArgs e)
        {
            ds = mydatabase.GetDataSet("select * from student");
            dt = ds.Tables[0];
            dataGridView1.DataSource = dt.DefaultView;
        }
        /// <summary>
        ///  更新数据信息
        /// </summary>
        private void btnUpdata_Click(object sender, EventArgs e)
        {
            updatData();// 更新数据
        }
         ///   <summary>
        ///  删除数据信息
        /// </summary>
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (DialogResult.Yes == MessageBox.Show(" 数据删除后将不可恢复,真的要删除吗?" " 提示" MessageBoxButtons.YesNo,MessageBoxIcon.Warning))
            {
                dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
                dataGridView1.Refresh();
                updatData();// 更新数据
            }
        }
        /// <summary>
        ///  到头
        /// </summary>
        private void button1_Click(object sender, EventArgs e)
        {
            int i = dataGridView1.SelectedRows[0].Index;
            dataGridView1.Rows[i].Selected = false;
            dataGridView1.Rows[0].Selected = true;
            showmess();
        }
        /// <summary>
        ///  下一条
        /// </summary>
        private void button3_Click(object sender, EventArgs e)
        {
            int i = dataGridView1.SelectedRows[0].Index;
            if (i < dataGridView1.Rows.Count - 1)
            {
                dataGridView1.Rows[i].Selected = false;
                dataGridView1.Rows[i + 1].Selected = true;
                showmess();
            }
            else
            {
MessageBox .Show(" 已经是最后一项了!" " 提示" MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        /// <summary>
        ///  上一条
        /// </summary>
        private void button2_Click(object sender, EventArgs e)
        {
            int i = dataGridView1.SelectedRows[0].Index;
            if (i != 0)
            {
                dataGridView1.Rows[i].Selected = false;
                dataGridView1.Rows[i - 1].Selected = true;
                showmess();
            }
            else
            {
MessageBox .Show(" 已经是第一项了!" " 提示" MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        /// <summary>
        ///  到尾
        /// </summary>
        private void button4_Click(object sender, EventArgs e)
        {
            int i = dataGridView1.SelectedRows[0].Index;
            dataGridView1.Rows[i].Selected = false;
            dataGridView1.Rows[dataGridView1.Rows.Count - 1].Selected = true;
            showmess();
        }
        /// <summary>
        ///  底部显示信息
        /// </summary>
        private void showmess()
        {
            toolStripStatusLabel1.Text = string.Format(" 当前是第{0}条记录,共{1}条记录" ,dataGridView1.SelectedRows[0].Index+1,dataGridView1.Rows.Count);
            toolStripProgressBar1.Value = (int)((double)(dataGridView1.SelectedRows[0].Index) / dataGridView1.Rows.Count*100);
        }
       ///   退出系统
        private void btnExit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}




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

目录
相关文章
|
11月前
|
网络协议 定位技术 网络安全
IPIP.NET-IP地理位置数据
IPIP.NET 是一家专注于 IP 地理位置数据的提供商,基于 BGP/ASN 数据与全球 800+ 网络监测点技术,提供高精度的 IPv4 和 IPv6 定位服务。其核心服务包括地理位置查询、详细地理信息和网络工具等,广泛应用于网络安全、广告营销、CDN 优化等领域。数据覆盖全球,支持多语言,每日更新确保实时性。IPIP.NET 提供 API 接口、离线数据库及多种语言 SDK,方便开发者集成使用。
2128 0
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
410 2
|
开发框架 .NET 数据库连接
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
267 1
|
开发框架 JSON 前端开发
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
|
开发框架 前端开发 算法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
256 0
|
SQL Oracle 关系型数据库
.NET 开源快捷的数据库文档查询和生成工具
【8月更文挑战第1天】推荐几款.NET开源数据库文档工具:1. DBDocumentor,支持多类型数据库,快速生成详尽文档;2. SqlDoc,界面简洁,自定义内容与格式;3. DBInfo,强大查询功能,支持多种导出格式。这些工具有效提升文档管理效率与质量。
265 0
效率提升利器:一个在线的.NET源码查询网站
效率提升利器:一个在线的.NET源码查询网站
217 0
|
存储 测试技术 计算机视觉
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
528 5