使用C#开发数据库应用系统
第一章 初识Windows程序
01.浅谈控制台应用
解析:控制台应用程序:dos窗口中显示
Windows窗体应用程序:有控件参与的,支持事件的一种程序
02.关于窗体项目的注意点:
/*01.一个解决方案下可以包含多个项目,
* 一个项目下可以包含多个窗体
* 02.如何设置一个项目下的某个窗体为启动窗体???
* 解析:通过更改Program.csMain方法中最后一行代码设置
* 03.控件的Name属性相当于隐藏值,一定要改
* 真正在窗体显示内容的是Text属性
* 04.如果一个解决方案下有多个项目,如何设置某个项目为启动项??
* 解析:可以对项目点击右键→设为启动项
* 05.机房的项目如何保存,或者保存后如何打开???
* 解析:可以将解决方案另存为到指定的项目下,下次
* 直接打开sln文件就可以了
*
* 06.事件激发错误问题???
(这个正常,现在大家都事件的概念还不太理解,
* 随着学习的深入大家就会了解)
* 解析:注意什么时候激发事件
*
* 07.如何让窗体运行后无法改变大小?
* 解析:通过如下设置:
* 01.禁用最大化按钮
* 02.设置FormBorderStyle属性为任何一个以Fixed开头的属性都OK
*/
03..在VS中创建一个窗体后,所有的窗体都继承自Form类
04.构造函数:
解析:在一个类中,方法名和类名相同,并且没有返回值类型的方法,称为构造函数
作用:做初始化工作
05.什么是事件之事件详解
解析:由外界事物(猎枪)激发另一个事物(小鸟)的状态发生改变的情况。
//事件看起来像一个带参方法,2个参数
//sender:代表的是事件源:事件的激发者
//e:事件的参数:和事件相关的一些信息!
06.窗体变色练习
解析:事件(窗体的Click事件)
This:当前窗体对象
this.BackColor=Color.Red;
07.MessageBox(肯定出2分)
//01.参数一:提示信息
//参数二:标题文本
//参数三:按钮设置
//参数四:图标设置
MessageBox.Show("恭喜您,中奖500完,请吃饭可以吗?","温馨提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning);
Warning:
Information:
Error:
08.窗体传值
解析:从Login窗体传递登陆用户名到Main窗体,可以在Main窗体中定义一个公有的变量,然后在Login窗体的登陆按钮事件中编写如下代码:
Main frm=new Main();
frm.name=txtName.Text;
frm.Show();
然后在Main的load事件中为Label控件赋值。
09.真正退出程序
在窗体的FormClosing事件中,书写Application.Exit();
10.多文本框为空验证
01.在工具箱中的任何控件都是一个类,一旦你将他拖动到Form窗体上,他就变成了一个对象,进而大家可以通过F4快捷键在属性窗口中,给她的各个属性赋值。
11.如何解决窗体已经关闭,但是整个应用没有退出的问题?
解析:使用Application.Exit() 会出
12.练习重点
01.窗体跳转
如何从窗体A跳转到窗体B
02.退出整个应用
03.欢迎界面显示欢迎您,微冷的雨
第2章 构建布局良好的Windows程序
2015年11月21日13:45:24
01.登陆:
Select count(1) from student
Where studentname= and loginpwd=?;
02.向学生表中添加一条记录。
03.单选按钮
04.复选按钮
05.菜单栏(MenuStrip)
快捷键
方式一:打开(&F) ,缺点:必须先用alt+字符,先定位到一级菜单,然后按F定位到相应内容
方式二:shortCutKeys 打开(Ctrl+F)。优点:可以跳过1级菜单,直接调用需要的窗口
和分割线
06.ToolStrip(工具栏)
01.整个控件中所有项目的图片和原图片大小等同,需要设置imageScalingSize:
32x32 (整个控件)
02.显示图像和文本选项:设置DisplayStyle的值为ImageAndText(单个Item)
03.图像和文本的位置:TextImageRelation设置ImageBeforeText (单个Item)
07.窗体传值
01.菜单栏(MenuStrip)
设置快捷键方式:
方式一:1.设置菜单项的Text属性为(打开(&F)),
首先必须按住alt+主菜单快捷键进入到对应的主菜单,
然后直接按F就可以打开子窗体。
方式二:通过菜单项的ShorCartKeys属性设置。
创建对应的组合键,可以在主界面直接按对应的
字母键就可以打开子窗体
分割线的画法:
01.插入分割线
02.输入减号(-)
02.工具栏(ToolStrip)
01.给工具栏项目设置图片,首先图片大小由整个ToolStrip来控制,
设置 ImageScalingSize 值为图片本身像素值。
02.添加每一项目的类型为DropDownButton
03.设置Text属性为显示的文本
04.设置DisplayStyle属性为ImageAndText,让图片和文本同时显示
05.TextImageRelation图像与文本的相对位置
03. application.Exit()和this.close()
Application.Exit();//退出整个应用程序
this.Close();//关闭当前窗体
04.常见控件的使用
RadioButton
DateTimerPicker
GroupBox
Panel
05.预留问题:如何让DateTimePiker不显示星期
06.Anchor和Dock属性
Anchor:让控件和窗体边缘的位置保持固定的像素值。
Dock:使控件停靠在窗体的某个部位(Top,Bottom,Left,RIght),或者填充整个窗体(Fill)
07.设置MDI窗体
001.将Main窗体的IsMdiContainer属性设置为true
002.在子窗体show()之前加上如下代码:
frm.MdiParent=this;//this代表当前窗体
面向对象提升:只要能通过点鼠标设置属性的地方,都可以通过代码实现,但是代码能实现的未必都能通过点鼠标实现!
08.关于ReadOnly的那些事儿
如果对TextBox设置了ReadOnly属性,那么设置字体前景色是不起作用的,必须设置BackColor为Control外的任意颜色即可。
09.如何将数据库中Grade表中的数据绑定到下拉框中
解析:界面上年级下拉框中显示的是年级名称,而学生表中保存的是年级编号,怎么搞??
解析:public int GetIdByName(string gradename)
{
string sql="select gradeid from grade where gradeName='"+gradename+"'";
}
第3章 使用ListView控件展示数据
01.ListView初步
步骤一:图片来源于ImageList,在ImageList:
\
步骤二:将ListView的两个属性和ImageList图片源进行关联
步骤三:给ListView控件添加项
步骤四:设置ListView显示的图标类型
第4章 实现Windows程序的数据更新
01.枚举类型
001.枚举是值类型
002.枚举本质上保存的是数字
003.枚举中不能有方法
004.枚举也是一种数据类型
005.枚举一般只用来定义有限个值(10个以内)
02.Timer控件
两大属性:Enabled:可以控制定时器开启还是停止。
Start():开启定时器 Stop()停止定时器
Interval:每隔多少毫秒执行一段代码。
重要事件:Tick:你要重复执行什么代码就写到Tick事件中。
03.模态窗口和非模态窗口
模态窗口:如果该窗口不关闭,那么不能操作程序中的其他任何功能。ShowDialog()
即时修改问题
第5章 实现Windows程序的数据绑定
01.会用新的方式加载年级下拉框。
02.会使用DataGridView控件展示所有学员的信息
03.会使用DataAdapter和DataSet对象操作离线数据。
04.Dataset:保存在客户端内存中的一个临时数据库。
一个DataSet由多个DataTable组成。
一个DataTable中可以有多行,每一行都是一个DataRow对象,每一列都是DataColumn对象。
5.“请选择”能不能放到数据库中形成一条记录。
登陆
修改密码
主界面
新增学员信息
修改学员信息
按姓名查询学员信息
成绩管理
删除
按年级查询学员信息
DataAdapter和DataSet结合使用图
第6章 数据筛选和排序
01.TreeView控件
*学习到了在一个TreeView控件中,每一个节点的类型都是一个TreeNode。
*默认情况下,会自动激活TreeVuew的根节点
*获取当前选中节点代码:tvList.SelectedNode
*获取当前选中节点的根节点:tvList.SelectedNode.Parent(根节点对象)
*统计TreeView控件某个节点的深度,深度是从0开始的。获取深度的属性是
lvList.SelectedNode.Level;
*节点中如何添加图片:ImageIndex(默认显示的图片) (SelectedImageIndex:选中后的图片)
*Tag:专门为程序员提供的编程接口,方便用户对程序的操作 。Tag里面可以存储任意
类型的数据,但是一个数据无论之前是什么类型,一旦被放入到Tag属性中,那么就变成了
Object类型,所以,取出Tag属性值的时候要进行类型转换。
*AfterSelect事件,当选中某个节点后触发的事件
02.DataView(类)
DataView dv=new DataView();
dv.RowFilter();
他说:我可以满足你只和DB交互一次,后续所有的查询操作(过滤)都由我来完成。
*DataView干啥的?
解析:用来筛选数据集DataSet中某张表的数据,换句白话来说,就是取出学生表中
一部分符合条件的数据,然后保存到DataView对象中。DataView只是客户端保存数据的一个
容器,和DataSet呀,DataTable呀!一样。
*DataSet和DataView和DataTable有什么关系?
解析:这里有3分。
DataSet包含多个DataTable。一个DataTable可以拥有多个DataView
*DataRow有一个属性叫RowFilter,可以对表中的数据进行筛选过滤。
dv.RowFilter="where后面的内容"; 例如:dv.RowFilter="gradeid="+gid+"";
2015年11月30日16:48:39
作业:
1.在根据年级名称查询学生信息窗体中,如下
右键菜单中有一项叫录入成绩
2.
3.清空
4.添加学生信息成功后,返回主键值。
第七章 航班系统 (周四下午前)
第八章 商品管理系统
使用C#开发数据库应用系统的更多相关文章
- 使用C#开发数据库应用系统 习题
错题积累 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
- 用SignalR 2.0开发客服系统[系列2:实现聊天室]
前言 交流群:195866844 上周发表了 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 这篇文章,得到了很多帮助和鼓励,小弟在此真心的感谢大家的支持.. 这周继续系列2,实现聊天室 ...
- 用SignalR 2.0开发客服系统[系列3:实现点对点通讯]
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 真的很感谢大家的支持,今天发表系列3 ...
- 用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR]
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...
- 用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...
- iOS开发数据库篇—SQLite的应用
iOS开发数据库篇—SQLite的应用 一.简单说明 在iOS中使用SQLite3,首先要添加库文件libsqlite3.dylib和导入主头文件. 导入头文件,可以使用库中的函数(是纯C语言的) 二 ...
- Apache Ignite——新一代数据库缓存系统
[编者按]飞速增长的数据需要大量存储,对这些数据的管理也不是一件容易的事.但相比于存储和管理,如何处理数据才是开发人员真正的挑战.对于TB级别数据的存储和处理通常会让开发人员陷入速度.可扩展性和开销的 ...
- iOS开发 数据库FMDB
iOS开发 数据库FMDB 1.简介 需求作用: 如果需要保存大量的结构较为复杂的数据时候, 使用数据库, 例如交规考试项目 常用的数据库: (1)Microsoft SQL Server 2000 ...
- 使用 WebSphere ILOG JRules 开发保险应用系统
使用 WebSphere ILOG JRules 开发保险应用系统 概述 保险行业在国内是一个充分竞争的行业,竞争的加剧导致保险公司的业务管理等各项费用在增长.而保险公司业务支撑系统的先进性与灵活支撑 ...
随机推荐
- Java环境变量
很简单的问题!配置Java环境变量 准备 下载安装Java,官方地址 打开系统环境变量,我的电脑右键 JAVA_HOME 添加JAVA_HOME,设置jdk安装目录,比如"C:\Progra ...
- Windows组件:打开MSDTC,恢复Windows TaskBar,查看windows日志,打开Remote Desktop,打开Services,资源监控
一,Win10 打开 MSDTC 1,Win+R 打开运行窗口,输入 dcomcnfg,打开组件服务窗口 2,在组件服务 catalog下找到 Distributed Transaction Coor ...
- Panorama和Pivot的区别
Panorama 1.提供了更丰富的用户体验(建议最多4个Items项) 2.Item可以设置屏幕方向为水平,支持多于一个屏幕的显示 3.可以使用任意大小的背景图片,Panorama会自动地缩放为屏幕 ...
- 【开源】OSharp框架解说系列(2.2):EasyUI复杂布局及数据操作
OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...
- 《ASP.NET Web API 2框架揭秘》样章(PDF版本)
<ASP.NET Web API 2框架揭秘>(详情请见<新作<ASP.NET Web API 2框架揭秘>正式出版>)以实例演示的方式介绍了很多与ASP.NET ...
- MySQL存储过程及触发器
一.存储过程 存储过程的基本格式如下: -- 声明结束符 -- 创建存储过程 DELIMITER $ -- 声明存储过程的结束符 CREATE PROCEDURE pro_test() --存储过程名 ...
- geotrellis使用(六)Scala并发(并行)编程
本文主要讲解Scala的并发(并行)编程,那么为什么题目概称geotrellis使用(六)呢,主要因为本系列讲解如何使用Geotrellis,具体前几篇博文已经介绍过了.我觉得干任何一件事情基础很重要 ...
- Global eval. What are the options?
David Flanagan最近写了一个关于全局eval的简单表达式,可以用一行式子表示: var geval = this.execScript || eval; 尽管看起来很简短,但是跨浏览器的兼 ...
- App Widget
AppWidgetProviderInfo对象: 为App Widget提供元数据(描述数据的数据,如XML.关系型数据的表结构),包括布 局,更新频率等数据.这个对象被定义在XML文件当中: App ...
- jquery动画,基础以及我发现的新大陆
$.animate()在jquery官方介绍有2中方式,其实我发现的新大陆也是第二种方式的扩展! 一.$.animate( properties [, duration ] [, easing ] [ ...