C#程序开发:菜单实例与历史记录功能

需积分: 12 2 下载量 164 浏览量 更新于2024-07-24 收藏 7.09MB PDF 举报
"C#程序开发范例宝典"是一本专注于C#语言的实用指南,它深入浅出地介绍了如何在C#编程中设计和实现窗体与界面,特别是菜单功能。本章节聚焦于菜单的应用实例,因为菜单是软件开发中常用的交互元素,能够提升用户体验并优化工作效率。 在第1章中,作者以实例001——带历史信息的菜单为例,展示如何在C#中实现保存用户最近打开的文件功能。这种设计考虑到了用户的便利性,比如在图纸管理软件中,当用户打开过某份图纸后,下一次运行时可以直接从历史菜单中选择而无需再次寻找。为了实现这个功能,关键在于: 1. 技术要点: - 使用*.ini文件作为临时存储,菜单中的文件名和路径被写入其中。这是一种常见的配置文件格式,便于存储和检索数据。 - 系统启动时,通过读取ini文件中的数据动态构建历史菜单,显示之前用户操作的记录。 2. 实现步骤: - 创建一个新的C#项目,例如名为Ex01_01,包含一个默认的Form1窗体。 - 在Form1窗体上添加MenuStrip控件,以及用于文件操作的OpenFileDialog控件。在此基础上构建一个包含“打开”、“关闭所有”和“退出”等选项的主菜单。 - 编写代码来处理菜单事件,如在用户点击“打开”菜单项时,调用OpenFileDialog获取文件路径,然后写入ini文件。同时,定义一个函数ShowWindows用于显示文件内容。 - 启动时,读取ini文件中的信息,填充到菜单的历史记录中,以便在用户选择时能快速访问。 通过这个实例,读者可以学习到C#中如何结合菜单控件和文件操作,以及如何利用配置文件来实现程序的个性化设置和数据持久化。此外,书中还会涵盖更多实用的菜单设计技巧,包括不同类型的菜单(如上下文菜单、快捷菜单等)、菜单项的动态添加和删除等,帮助开发者提升C#程序的用户体验和可维护性。
2008-08-07 上传
第10章 SQL查询相关技术 425
10.1 SELECT子句 426
实例292 查询特定列数据 426
实例293 使用列别名 428
实例294 在列上加入计算 430
实例295 使用函数设置条件 431
10.2 查询常量 432
实例296 查询数字 433
实例297 查询字符串 434
实例298 查询日期数据 436
实例299 查询逻辑型数据 437
实例300 查询空数据 438
10.3 查询变量 440
实例301 利用变量查询字符串数据 440
实例302 利用变量查询数值型数据 441
实例303 利用变量查询日期型数据 442
10.4 模式查询 444
实例304 利用“_”通配符进行查询 444
实例305 利用“%”通配符进行查询 445
实例306 利用“[]”通配符进行查询 446
实例307 利用“[^]”通配符进行查询 448
实例308 复杂的模式查询 449
10.5 TOP和PERCENT限制查询结果 450
实例309 查询前10名数据 450
实例310 取出数据统计结果的前10名数据 451
实例311 查询销售量占前50%的图书信息 453
实例312 查询库存数量占后20%的图书信息 454
10.6 周期、日期查询 455
实例313 查询指定日期的数据 455
实例314 查询指定时间段的数据 457
实例315 按月查询数据 458
10.7 比较、逻辑、重复查询 460
实例316 查询数据大于指定条件的数据 460
实例317 NOT与谓词进行组合条件的查询 461
实例318 查询时不显示重复记录 463
实例319 列出数据中的重复记录和记录条数 465
10.8 在查询中使用OR和AND运算符 466
实例320 利用OR运算符进行查询 466
实例321 利用AND运算符进行查询 467
实例322 同时利用OR、AND运算符进行查询 469
10.9 排序、分组统计 471
实例323 数据分组统计(单列) 471
实例324 在分组查询中使用ALL关键字 473
实例325 在分组查询中使用CUBE运算符 475
实例326 在分组查询中使用ROLLUP 477
实例327 对数据进行降序查询 479
实例328 对数据进行多条件排序 480
实例329 对统计结果进行排序 482
实例330 按仓库分组统计图书库存(多列) 483
实例331 多表分组统计 484
实例332 使用COMPUTE 485
实例333 使用COMPUTE BY 487
10.10 聚合函数 488
实例334 利用聚合函数SUM对销售额进行汇总 488
实例335 利用聚合函数AVG求某班学生的平均年龄 490
实例336 利用聚合函数MIN求销售额、利润最少的商品 492
实例337 利用聚合函数MAX求月销售额完成最多的员工 493
实例338 利用聚合函数COUNT求日销售额大于某值的商品数 495
实例339 利用聚合函数First或Last求数据表中第一条或最后一条记录 496
10.11 多表查询(连接查询) 498
实例340 利用FROM子句进行多表查询 498
实例341 使用表别名 499
实例342 合并多个结果集 501
10.12 嵌套查询 503
实例343 简单嵌套查询 503
实例344 复杂嵌套查询 504
实例345 嵌套查询在查询统计中的应用 506
10.13 子查询 508
实例346 用子查询做派生的表 508
实例347 用子查询作表达式 510
实例348 在Update语句中应用子查询 511
10.14 联合语句Union 512
实例349 使用联合查询 512
实例350 多表联合查询 514
实例351 对联合查询后的结果进行排序 515
10.15 内联接查询 517
实例352 简单内联接查询 517
实例353 复杂内联接查询 518
实例354 使用内联接选择一个表与另一个表中行相关的所有行 519
10.16 外联接查询 520
实例355 left outer join查询 521
实例356 right outer join查询 522
实例357 使用外联接进行多表联合查询 523
10.17 利用IN进行查询 525
实例358 用IN查询表中的记录信息 525
实例359 使用IN引入子查询限定查询范围 526
10.18 交叉表查询 527
实例360 利用Trasform分析数据 527
实例361 利用Trasform动态分析数据 529
实例362 静态交叉表(SQLServer 2000) 531
实例363 动态交叉表(SQLServer 2000) 533
10.19 函数查询 535
实例364 在查询语句中使用格式化函数 536
实例365 在查询语句中使用字符串函数 537
实例366 在查询中使用日期函数 538
10.20 having语句应用 540
实例367 利用having语句过滤分组数据 540
实例368 having语句应用在多表查询中 541
10.21 视图的应用 543
实例369 在C#中应用视图 543
实例370 获取数据库中的全部用户视图 544
实例371 通过视图修改数据 545
10.22 存储过程的应用 546
实例372 C#应用存储过程 546
实例373 应用存储过程添加数据 547
实例374 应用存储过程修改数据 549
实例375 应用存储过程删除数据 550
实例376 C#应用查询存储过程 551
实例377 获取数据库中全部的存储过程 552
实例378 加密存储过程 553
10.23 触发器的应用 555
实例379 Insert触发器的应用 555
实例380 Update触发器在系统日志中的应用 556
实例381 触发器的嵌套使用 557
实例382 获取数据库中的触发器 559