C# 经典实例 第一章 类和泛型 #1.1 创建联合类型的结构

本文介绍了如何在C#中通过结构和StructLayout特性模拟联合类型,用于互操作场景。讨论了使用FieldOffset来指定字段在内存中的偏移量,以及由此可能引发的数据类型提取错误和内存对齐问题。同时还警告了将引用类型叠加在值类型上的风险,可能导致TypeLoadException。
摘要由CSDN通过智能技术生成

问题:

需要创建一种数据类型,其行为方式类似于C++中的联合类型。联合类型主要用于互操作场景,其中非托管代码接受和/或返回一个联合类型。(建议不要在其他情况下使用它)

解决方案:

使用一个结构,并用StructLayout特性标记他(在构造函数中指定LayoutKind.Explicit布局类型)。此外,利用FieldOffset特性标记结构中的每个字段。

下面的结构定义了一个联合类型,其中可以存储一个带符号数值。

using System.Runtime.InteropServices;

[StructLayoutAttribute(LayoutKind.Explicit)]
struct SignedNumber
{
    [FieldOffsetAttribute(0)] 
    public sbyte Num1;
    [FieldOffsetAttribute(0)]
    public short Num2;
    [FieldOffsetAttribute(0)]
    public int Num3;
    [FieldOffsetAttribute(0)] 
    public long Num4;
    [FieldOffsetAttribute(0)] 
    public float Num5;
    [FieldOffsetAttribute(0)] 
    public double Num6;
}

下一个结构类似于SignedNumber结构,不同之处是除了带符号的数值之外,它还可以包含String类型:

using Sys
第1章 窗体与界面设计 11.1 菜单应用实例 2实例001 带历史信息的菜单 2实例002 菜单动态合并 3实例003 像开始菜单一样漂亮的菜单 4实例004 任务栏托盘菜单 5实例005 可以拉伸的菜单界面 5实例006 菜级联菜单 71.2 工具栏设计 7实例007 带背景的工具栏 7实例008 浮动工具栏 8实例009 带下拉菜单的工具栏 9实例010 具有提示功能的工具栏 91.3 状态栏设计 10实例011 在状态栏中显示检查框 10实例012 带进度条的状态栏 11实例013 状态栏中加入图标 121.4 导航菜单界面 12实例014 OutLook界面 12实例015 带导航菜单的主界面 14实例016 图形化的导航界面 151.5 特色程序界面 17实例017 QQ的程序界面 17实例018 似Windows Xp的程序界面 18实例019 以图形按钮显示的界面 20实例020 以树形显示的程序界面 21实例021 动态按钮的窗体界面 221.6 特殊形状的窗体 24实例022 非矩形窗体 24实例023 建立字体形状窗体 25实例024 控件随窗体自动调整 26实例025 带分隔栏的窗体 27实例026 随机更换主界面背景 271.7 多媒体光盘 28实例027 自动启动的多媒体光盘程序 28实例028 为触摸屏程序添加虚拟键盘 291.8 窗体效果 30实例029 半透明渐显窗体 31实例030 窗口颜色的渐变 321.9 窗体动画 33实例031 窗体中的滚动字幕 33实例032 动画显示窗体 34实例033 制作闪烁的窗体 35实例034 直接在窗体上绘图 37实例035 动画形式的程序界面 381.10 标题栏窗体 39实例036 使窗体标题栏文字右对齐 39实例037 没有标题栏但可以改变大小的窗口 391.11 设置窗体位置 40实例038 设置窗体在屏幕中的位置 40实例039 始终在最上面的窗体 411.12 设置窗体大小 42实例040 限制窗体大小 42实例041 获取桌面大小 42实例042 在窗口间移动按钮 43实例043 如何实现Office助手 441.13 窗体控制技术 45实例044 在关闭窗口前加入确认对话框 45实例045 使用任意组件拖动窗体 46实例046 修改提示字体及颜色 471.14 其他技术 48实例047 如何为MDI类型窗体设置背景图片 48实例048 向提示框中添加图标 49第2章 控件应用 512.1 TextBox控件应用 52实例049 只允许输入数字的TextBox控件 52实例050 限制用户名称长度及设置密码文本 54实例051 自动删除非法字符 55实例052 为TextBox控件添加列表选择框 572.2 Button控件应用 58实例053 在Button按钮中显示图标 582.3 ComboBox控件应用 59实例054 将数据表中的字段添加到ComboBox控件 59实例055 带查询功能的ComboBox控件 612.4 RichTextBox控件应用 63实例056 利用RichTextBox控件实现文档管理功能 63实例057 利用RichTextBox控件实现文字定位与标识 65实例058 用RichTextBox控件显示图文数据 672.5 ListBox控件应用 68实例059 在ListBox控件间交换数据 68实例060 将数据库数据添加到组合框中 70实例061 借助绑定控件实现数据选择录入 71实例062  ListBox拒绝添加重复信息 722.6 选择控件应用 73实例063 利用选择控件实现权限设置 74实例064 利用选择控件实现复杂查询 762.7 ListView控件应用 78实例065  ListView列表拒绝添加重复信息 78实例066 将数据库数据添加到ListView控件 80实例067 用ListView控件制作导航界面 81实例068 在ListView控件中对数据排序或统计 83实例069 在ListView控件中绘制底纹 84实例070 在列表视图中拖动视图项 85实例071 用ListView控件选取整行数据 88实例072 用ListView控件开发登录界面 892.8 TreeView控件应用 91实例073 将数据库数据显示到树视图中 91实例074 用TreeView控件制作导航界面 93实例075 用TreeView控件遍历磁盘目录 94实例076 TreeView控件在数据库中的应用 96实例077 带复选框的树状菜单 982.9 其他控件典型应用 100实例078 TrackBar的简单应用 100实例079 SplitContainer的应用 102实例080 MaskedTextBox控件的简单应用 103实例081 制作日历计划任务 105实例082 ImageAnimator显示动画图片 108实例083 QQ头像列表 1102.10 控件技术 112实例084 程序运行时智能增减控件 112实例085 控制焦点移动 114实例086 动态创建控件 115实例087 在Button按钮上绘图 1162.11 焦点变换与输入控制 117实例088 按回车键焦点在控件中移动的录入窗口 117实例089 程序运行时拖动控件 119实例090 控件得到焦点时变色 120实例091 控件的输入限制 1212.12 特殊控件 122实例092 为控件制作立体效果 122实例093 获取控件名称和内容 124第3章 组件应用 1273.1 BackgroundWorker组件 128实例094  BackgroundWorker组件执行异步操作 1283.2 ErrorProvider组件 130实例095 使用ErrorProvider组件验证文本框输入 130实例096 利用ErrorProvider组件查看数据集中的错误 1323.3 EventLog组件 134实例097 使用EventLog组件读写Windows系统事件日志 134实例098 使用EventLog组件保存Windows系统日志 136实例099 使用EventLog组件向本机现有日志中添加条目 1383.4 FileSystemWatcher组件 140实例100 使用FileSystemWatcher组件监视系统日志文件是否被更改 1403.5 HelpProvider组件 142实例101 使用HelpProvider组件调用帮助文件 1423.6 Process组件 143实例102 使用Process组件访问本地进程 1433.7 Timer组件 145实例103 使用Timer组件制作计时器 145实例104 使用Timer组件显示当前系统时间 150实例105 使用Timer组件制作左右飘动的窗体 151实例106 使用Timer组件实现奥运倒计时 1523.8 ServiceController组件 154实例107 使用ServiceController组件控制计算机的服务 1543.9 ImageList组件 156实例108 使用ImageList组件制作动画图片 1563.10 DirectoryEntry组件 157实例109 使用DirectoryEntry组件建立虚拟目录 158第4章 图形技术 1614.1 绘制图形 162实例110 基本图形绘制 162实例111 在图片中写入文字 163实例112 局部图片的复制 165实例113 波形图的绘制 1664.2 图形转换 168实例114 BMP转换成JPG格式 168实例115 JPG转换成BMP格式 170实例116 位图转化为WMF 171实例117 Ico文件转化为位图 172实例118 图片批量转换工具 1734.3 图像预览 175实例119 局部图像放大 175实例120 浏览大图片 177实例121 剪切图片 178实例122 图像旋转 181实例123 鼠标拖拽图像 1824.4 图形缩放与变换 183实例124 如何放大和缩小图像 183实例125 如何旋转JPG图像 184实例126 如何实现图形翻转 1854.5 图像效果 186实例127 百叶窗效果显示图像 186实例128 推拉效果显示图像 187实例129 水平交错效果显示图像 188实例130 垂直交错效果显示图像 190实例131 图像纹理效果 191实例132 图像浮雕效果 193实例133 积木效果 194实例134 马赛克效果显示图像 1954.6 图像字体 197实例135 旋转的文字 197实例136 当前系统字体列表 198实例137 空心文字 199实例138 如何在图片上平滑移动文字 2014.7 图像动画 202实例139 动画背景窗体 202实例140 随鼠标移动的图像 203实例141 十字光标定位 204实例142 抓取鼠标形状 2064.8 图像识别 207实例143 查看图片的像素 207实例144 获取指定点的RGB值 2074.9 图像工具 208实例145 获取图片类型 208实例146 简单画图程序 209实例147 看图工具 213实例148 文字保存为图片 2154.10 图像应用 215实例149 随机更换壁纸程序 216实例150 屏幕保护 217实例151 模拟石英钟 219实例152 生肖速查 221第5章 多媒体技术 2255.1 CD、VCD播放 226实例153 播放指定的avi-mid-wav文件 226实例154 获取多媒体详细信息列表 2275.2 MP3、WAV播放 228实例155 带记忆功能的MP3播放器 228实例156 自动播放的MP3播放器 231实例157 学校体操定时音乐播放 2335.3 动画播放 234实例158 播放Flash动画 234实例159 制作AVI播放器 236实例160 播放Gif动画 237实例161 利用Image制作小动画 2395.4 媒体控制 240实例162 检测是否安装声卡 240实例163 打开和关闭CDROM 241实例164 控制PC喇叭发声 2425.5 多媒体应用 243实例165 开机祝福程序 243实例166 制作家庭影集 245实例167 产品电子报价 246实例168 产品滚动展示程序 248实例169 将图片资源添加到EXE里 2495.6 屏幕保护相关程序 250实例170 电子相册屏幕保护程序 250实例171 歌曲播放屏幕保护程序 251第6章 文件系统 2536.1 创建和删除文件 254实例172 创建和删除文件夹 254实例173 建立临时文件 255实例174 根据日期动态建立文件 256实例175 清空回收站 2576.2 查找文件 258实例176 搜索文件 259实例177 检查文件是否存在 260实例178 提取指定文件夹目录 2616.3 修改文件 261实例179 更改文件名称 262实例180 修改文件属性 262实例181 修改文件及目录的名字 2646.4 文件目录 265实例182 获得临时文件目录 265实例183 获取应用程序所在目录 266实例184 得到系统当前目录 266实例185 在程序中改变当前路径 2676.5 复制文件 268实例186 移动正在使用的文件 268实例187 批量复制文件 2696.6 指定类型的文件操作 270实例188 文本文件的操作 270实例189 简单的文件加密解密 2716.7 其他 273实例190 获取窗口文本 273实例191 判断文件是否正在被使用 274实例192 在程序中调用.HLP文件 275实例193  C#中实现文件拖放 276实例194 文件比较 276第7章 操作系统与Windows相关程序 2797.1 启动相关 280实例195 进入Windows前发出警告 280实例196 实现注销、关闭和重启计算机 2817.2 获得磁盘属性 284实例197 获得硬盘序列号 284实例198 获取映射驱动器路径 286实例199 判断驱动器类型 2877.3 磁盘相关设置 288实例200 取消磁盘共享 288实例201 检查驱动器容量 289实例202 检测磁盘是否准备好 290实例203 图表显示磁盘容量 291实例204 格式化磁盘 2937.4 系统控制 294实例205 怎样隐藏鼠标 294实例206 允许和禁止用户关机 295实例207 锁定计算机 2967.5 系统设置 297实例208 设置系统输入法 297实例209 设置桌面颜色 298实例210 鼠标交换左右键 2997.6 系统监控 299实例211 检测系统启动模式 300实例212 内存使用状态监控 301实例213 监视剪贴板内容 3027.7 系统软件信息 303实例214 获取用户名 303实例215 获取系统目录 305实例216 注册系统热键 306实例217 获取和修改BIOS计算机名 3077.8 鼠标操作 308实例218 动画鼠标 309实例219 限制鼠标活动区域 310实例220 获取鼠标在任意点的位置 311实例221 判断键盘按下的键值 3117.9 程序控制 312实例222 打开控制面板中的程序 313实例223 添加程序托盘 314实例224 不出现在任务栏上的程序 314实例225 怎样调用外部的Exe文件 315实例226 关闭外部已开启的程序 3167.10 程序运行 317实例227 防止程序多次运行 317实例228 开机后程序自动运行 319实例229 获取任务栏尺寸大小 320实例230 改变系统提示信息 321实例231 获取系统环境变量 322实例232 启动屏幕保护 3237.11 系统隐藏 324实例233 隐藏、显示任务栏 324实例234 隐藏、显示开始按钮 325实例235 查看当前系统版本 326实例236 使桌面图标文字透明 328实例237 检索系统中正在运行的任务 329实例238 列出系统中的打印机 3307.12 其他 332实例239 两种信息发送方式 332实例240 功能快捷键 336第8章 注册表 3398.1 操作注册表 340实例241 怎样存取注册表信息 340实例242 注册表保存注册信息 341实例243 设置“显示 属性”窗体 342实例244 列出注册表指定项下全部键值 3438.2 系 统 设 置 344实例245 隐藏、显示桌面图标 345实例246 隐藏驱动器 345实例247 禁用运行注册表 3478.3 IE浏览器设置 348实例248 修改IE浏览器标题栏内容 348实例249 隐藏IE浏览器的右键关联菜单 349实例250 设置IE浏览器的默认主页 350实例251 禁止修改IE浏览器主页 3518.4 应用软件设置 352实例252 设置Word 2000文档及图片的保存路径 352实例253 限制软件使用次数 353第9章 数据库技术 3559.1 连接Access数据库 356实例254 连接Access数据库 356实例255 连接加密的Access数据库 357实例256 自动识别Access 2000数据库路径 358实例257 连接网络上共享的Access 2000数据库 3609.2 连接SQL Server数据库 361实例258 使用ODBC DSN连接SQL Server数据库 361实例259 使用ODBC非DSN连接SQL Server数据库 364实例260 使用OLE DB连接SQL Server数据库 365实例261 建立SQL Server数据库连接 3669.3 连接其他数据库 367实例262 连接Excel 367实例263 连接Oracle数据库 3689.4 数据库结构的读取与修改 369实例264 读取SQL Server数据库结构 369实例265 修改SQL Server数据库结构 3729.5 数据录入 374实例266 利用数据绑定控件录入数据 374实例267 使用ADO.NET对象录入数据 376实例268 利用SQL语句录入数据 379实例269 利用存储过程录入数据 3809.6 图片存取技术 383实例270 使用存取文件名的方法存取图片 383实例271 使用ADO.NET对象向SQL Server数据库存入图片 3849.7 数据修改 387实例272 利用数据绑定控件修改数据 387实例273 利用数据对象修改数据 390实例274 利用SQL语句修改数据 391实例275 利用存储过程修改数据 3939.8 数据保存前判断 395实例276 判断输入数据是否符合要求 395实例277 通过存储过程实现自动编号 3989.9 数据删除 401实例278 删除表格中指定的记录 401实例279 利用SQL语句删除数据 4029.10 数据记录 403实例280 分页显示信息 403实例281 移动记录 4049.11 数据维护 406实例282 在C#中分离SQL Server数据库 406实例283 在C#中附加SQL Server数据库 407实例284 在C#中附加单文件SQL Server数据库 4099.12 数据备份恢复 410实例285 备份SQL Server数据库 410实例286 还原SQL Server数据库 4139.13 管理系统开发相关 415实例287 开启SQL Server数据库 415实例288 断开SQL Server数据库与其他应用程序的连接 417实例289 带图像列表的系统登录程序 419实例290 利用SQL语句执行外围命令 420实例291 系统初始化 421第10章 SQL查询相关技术 42510.1 SELECT子句 426实例292 查询特定列数据 426实例293 使用列别名 428实例294 在列上加入计算 430实例295 使用函数设置条件 43110.2 查询常量 432实例296 查询数字 433实例297 查询字符串 434实例298 查询日期数据 436实例299 查询逻辑型数据 437实例300 查询空数据 43810.3 查询变量 440实例301 利用变量查询字符串数据 440实例302 利用变量查询数值型数据 441实例303 利用变量查询日期型数据 44210.4 模式查询 444实例304 利用“_”通配符进行查询 444实例305 利用“%”通配符进行查询 445实例306 利用“[]”通配符进行查询 446实例307 利用“[^]”通配符进行查询 448实例308 复杂的模式查询 44910.5 TOP和PERCENT限制查询结果 450实例309 查询前10名数据 450实例310 取出数据统计结果的前10名数据 451实例311 查询销售量占前50%的图书信息 453实例312 查询库存数量占后20%的图书信息 45410.6 周期、日期查询 455实例313 查询指定日期的数据 455实例314 查询指定时间段的数据 457实例315 按月查询数据 45810.7 比较、逻辑、重复查询 460实例316 查询数据大于指定条件的数据 460实例317 NOT与谓词进行组合条件的查询 461实例318 查询时不显示重复记录 463实例319 列出数据中的重复记录和记录条数 46510.8 在查询中使用OR和AND运算符 466实例320 利用OR运算符进行查询 466实例321 利用AND运算符进行查询 467实例322 同时利用OR、AND运算符进行查询 46910.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 48710.10 聚合函数 488实例334 利用聚合函数SUM对销售额进行汇总 488实例335 利用聚合函数AVG求某班学生的平均年龄 490实例336 利用聚合函数MIN求销售额、利润最少的商品 492实例337 利用聚合函数MAX求月销售额完成最多的员工 493实例338 利用聚合函数COUNT求日销售额大于某值的商品数 495实例339 利用聚合函数First或Last求数据表中第一条或最后一条记录 49610.11 多表查询(连接查询) 498实例340 利用FROM子句进行多表查询 498实例341 使用表别名 499实例342 合并多个结果集 50110.12 嵌套查询 503实例343 简单嵌套查询 503实例344 复杂嵌套查询 504实例345 嵌套查询在查询统计中的应用 50610.13 子查询 508实例346 用子查询做派生的表 508实例347 用子查询作表达式 510实例348 在Update语句中应用子查询 51110.14 联合语句Union 512实例349 使用联合查询 512实例350 多表联合查询 514实例351 对联合查询后的结果进行排序 51510.15 内联接查询 517实例352 简单内联接查询 517实例353 复杂内联接查询 518实例354 使用内联接选择一个表与另一个表中行相关的所有行 51910.16 外联接查询 520实例355 left outer join查询 521实例356 right outer join查询 522实例357 使用外联接进行多表联合查询 52310.17 利用IN进行查询 525实例358 用IN查询表中的记录信息 525实例359 使用IN引入子查询限定查询范围 52610.18 交叉表查询 527实例360 利用Trasform分析数据 527实例361 利用Trasform动态分析数据 529实例362 静态交叉表(SQLServer 2000) 531实例363 动态交叉表(SQLServer 2000) 53310.19 函数查询 535实例364 在查询语句中使用格式化函数 536实例365 在查询语句中使用字符串函数 537实例366 在查询中使用日期函数 53810.20 having语句应用 540实例367 利用having语句过滤分组数据 540实例368 having语句应用在多表查询中 54110.21 视图的应用 543实例369 在C#中应用视图 543实例370 获取数据库中的全部用户视图 544实例371 通过视图修改数据 54510.22 存储过程的应用 546实例372 C#应用存储过程 546实例373 应用存储过程添加数据 547实例374 应用存储过程修改数据 549实例375 应用存储过程删除数据 550实例376 C#应用查询存储过程 551实例377 获取数据库中全部的存储过程 552实例378 加密存储过程 55310.23 触发器的应用 555实例379 Insert触发器的应用 555实例380 Update触发器在系统日志中的应用 556实例381 触发器的嵌套使用 557实例382 获取数据库中的触发器 559第11章 报表与打印技术 56111.1 Windows组件打印 562实例383 打印窗体中的数据 562实例384 图形打印 56411.2 利用报表生成器设计报表 566实例385 利用报表专家设计并显示学生基本信息 566实例386 分组统计报表 569实例387 在水晶报表中添加图表 57111.3 水晶报表基本操作 574实例388 在水晶报表中使用Access数据库 575实例389 在水晶报表中使用SQL Server数据库 576实例390 订货总金额超过10万元显示“恭喜获奖”文字 577实例391 薪资大于或等于1万元使用蓝色字体标记 580实例392 筛选薪资大于2000元的男员工 582实例393 按别分组统计图书库存 584实例394 按成绩总分降序排序 585实例395 部门销售量占公司总销售量的业绩百分比 58611.4 子报表的使用 588实例396 插入子报表 588实例397 编辑与重新导入子报表 589实例398 根据需要显示子报表 59111.5 调用Office进行打印 593实例399 利用Word打印员工报表 593实例400 利用Excel打印学生信息报表 595第12章 图表技术 59712.1 简单图表 598实例401 绘制坐标系 598实例402 绘制椭圆 599实例403 绘制矩形 601实例404 绘制曲线 60212.2 柱形图表 603实例405 将汇总数据利用图表分析 603实例406 柱形图表分析商品走势 605实例407 对排序数据进行分析 608实例408 利用控件实现柱形图分析 60912.3 折线图表 610实例409 利用图表分析产品销售走势 610实例410 利用图表分析彩票中奖情况 612实例411 多曲线数据分析 614实例412 网站人气指数曲线分析 61712.4 饼型图表 619实例413 利用饼型图分析公司男女比率 619实例414 利用饼型图分析产品市场占有率 620实例415 利用多饼型图分析企业人力资源情况 62112.5 图表技术的应用 623实例416 绘制验证码 623实例417 绘制不规则窗体 625第13章 硬件相关开发技术 62713.1 串口控制 628实例418 通过串口发送数据 628实例419 通过串口关闭对方计算机 63013.2 加密狗 631实例420 密码写入与读出加密狗 631实例421 使用加密狗进行身份验证 63413.3 IC卡应用 635实例422 向IC卡中写入数据 635实例423 读取IC卡中的数据 638实例424 利用IC卡制作考勤程序 63913.4 监控 641实例425 简易视频程序 641实例426 摄像头监控录像 644实例427 超市摄像头定时监控系统 64513.5 语音卡控制 647实例428 语音卡电话呼叫系统 647实例429 客户来电查询系统 652实例430 语音卡实现电话录音 65313.6 手机程序开发 655实例431 利用短信猫收发短信息 655实例432 利用短信远程关闭计算机 659实例433 短信息采集烟草销售数据 660实例434 “春晚”节目评比短信息互动平台 66313.7 其他程序 664实例435 条形码扫描器销售商品 664实例436 利用神龙卡制作练歌房程序 665第14章 网络开发技术 66914.1 计算机设置 670实例437 更改计算机名称 670实例438 通过计算机名获取IP地址 672实例439 通过IP地址获取主机名称 673实例440 修改本机IP地址 674实例441 得到本机MAC地址 677实例442 获得系统打开的端口和状态 678实例443 更改DNS地址 68014.2 远程控制 681实例444 远程控制计算机 682实例445 远程服务控制 68314.3 网络复制文件 686实例446 网络中的文件复制 68614.4 局域网管理 688实例447 在局域网内发送信息 688实例448 获取网络中所有工作组名称 690实例449 列出工作组中所有计算机 692实例450 获取网络中某台计算机的磁盘信息 693实例451 映射网络驱动器 69414.5 网络连接与通信 696实例452 编程实现Ping操作 69614.6 网络聊天室 698实例453 利用C#设计聊天程序 698实例454 编写网络聊天室 700第15章 Web编程 70315.1 浏览器应用 704实例455 制作自己的网络浏览软件 704实例456 XML数据库文档的浏览 70815.2 上网控制 710实例457 定时上Internet 710实例458 监测当前网络连接状态 71215.3 邮件管理 713实例459 收取电子邮件 713实例460 SMTP协议发送电子邮件 71715.4 网上信息提取 719实例461 提取并保存网页源码 719实例462 提取网页标题 722第16章 加密、安全与软件注册 72516.1 数据加密与解密 726实例463 数据加密技术 726实例464 文本文件加密与解密 727实例465 利用图片加密文件 73216.2 Access数据库安全 735实例466 如何编程修复Access数据库 735实例467 访问带验证模式的Sqlserver 2000数据库 73716.3 软件注册与加密 739实例468 利用INI文件对软件进行注册 739实例469 利用注册表设计软件注册程序 741实例470 利用网卡序列号设计软件注册程序 743实例471 根据cpu序列号、磁盘序列号设计软件注册程序 746第17章 数据结构与算法 74917.1 链表的实现 750实例472 单向链表的实现 75017.2 双向链表 755实例473 双向链表 75517.3 堆栈 760实例474 堆栈的实现 76017.4 队列 762实例475 队列的实现 76317.5 树的实现 764实例476 树的实现 76417.6 排序 769实例477 冒泡排序 769实例478 选择排序 770实例479 插入排序 771实例480 希尔排序 77217.7 常见算法的实际应用 773实例481 判断素数的算法 773实例482 加密和解密算法 774实例483 判断身份证是否合法 775实例484 判断IP地址是否合法的算法 777实例485 按要求生成指定位数编号 778实例486 身份证号从15位升到18位算法 779第18章 C#高级开发 78118.1 Windows服务开发 782实例487 将局域网聊天程序开发成Windows服务 78218.2 Remoting分布式开发 789实例488 运用Remoting实现文件传送 789实例489 大规模数据访问时缓解服务器压力 79618.3 COM+服务开发 802实例490 COM+服务实现银行转账系统 803实例491 COM+服务解决同时访问大量数据并发性 807第19章 实用工具 81319.1 数据库工具 814实例492 自动配置ODBC的程序 814实例493 制作SQL Server提取器 81719.2 个人工具 819实例494 个人通讯录 819实例495 电子名片盒 822实例496 个人日记本 823实例497 个人理财管理 82519.3 实用工具 827实例498 电话区号、邮编管理软件 827实例499 火车时刻查询软件 828实例500 网站网址导航程序 83219.4 其他工具 833实例501 人民币金额转换 834实例502 列举局域网SQL服务器 836实例503 整点报时程序 837实例504 红绿灯程序 839实例505 万年历 841实例506 彩票抽奖机 844实例507 电子相册 846第20章 程序打包 84920.1 最简单的程序打包 850实例508 最简单的程序打包 850实例509 将特定文件安装到指定文件夹中 85220.2 打包注册表信息 854实例510 打包注册表信息 854技术要点对应实例位置 857 第1章 窗体与界面设计 11.1 菜单应用实例 2实例001 带历史信息的菜单 2实例002 菜单动态合并 3实例003 像开始菜单一样漂亮的菜单 4实例004 任务栏托盘菜单 5实例005 可以拉伸的菜单界面 5实例006 菜级联菜单 71.2 工具栏设计 7实例007 带背景的工具栏 7实例008 浮动工具栏 8实例009 带下拉菜单的工具栏 9实例010 具有提示功能的工具栏 91.3 状态栏设计 10实例011 在状态栏中显示检查框 10实例012 带进度条的状态栏 11实例013 状态栏中加入图标 121.4 导航菜单界面 12实例014 OutLook界面 12实例015 带导航菜单的主界面 14实例016 图形化的导航界面 151.5 特色程序界面 17实例017 QQ的程序界面 17实例018 似Windows Xp的程序界面 18实例019 以图形按钮显示的界面 20实例020 以树形显示的程序界面 21实例021 动态按钮的窗体界面 221.6 特殊形状的窗体 24实例022 非矩形窗体 24实例023 建立字体形状窗体 25实例024 控件随窗体自动调整 26实例025 带分隔栏的窗体 27实例026 随机更换主界面背景 271.7 多媒体光盘 28实例027 自动启动的多媒体光盘程序 28实例028 为触摸屏程序添加虚拟键盘 291.8 窗体效果 30实例029 半透明渐显窗体 31实例030 窗口颜色的渐变 321.9 窗体动画 33实例031 窗体中的滚动字幕 33实例032 动画显示窗体 34实例033 制作闪烁的窗体 35实例034 直接在窗体上绘图 37实例035 动画形式的程序界面 381.10 标题栏窗体 39实例036 使窗体标题栏文字右对齐 39实例037 没有标题栏但可以改变大小的窗口 391.11 设置窗体位置 40实例038 设置窗体在屏幕中的位置 40实例039 始终在最上面的窗体 411.12 设置窗体大小 42实例040 限制窗体大小 42实例041 获取桌面大小 42实例042 在窗口间移动按钮 43实例043 如何实现Office助手 441.13 窗体控制技术 45实例044 在关闭窗口前加入确认对话框 45实例045 使用任意组件拖动窗体 46实例046 修改提示字体及颜色 471.14 其他技术 48实例047 如何为MDI类型窗体设置背景图片 48实例048 向提示框中添加图标 49第2章 控件应用 512.1 TextBox控件应用 52实例049 只允许输入数字的TextBox控件 52实例050 限制用户名称长度及设置密码文本 54实例051 自动删除非法字符 55实例052 为TextBox控件添加列表选择框 572.2 Button控件应用 58实例053 在Button按钮中显示图标 582.3 ComboBox控件应用 59实例054 将数据表中的字段添加到ComboBox控件 59实例055 带查询功能的ComboBox控件 612.4 RichTextBox控件应用 63实例056 利用RichTextBox控件实现文档管理功能 63实例057 利用RichTextBox控件实现文字定位与标识 65实例058 用RichTextBox控件显示图文数据 672.5 ListBox控件应用 68实例059 在ListBox控件间交换数据 68实例060 将数据库数据添加到组合框中 70实例061 借助绑定控件实现数据选择录入 71实例062  ListBox拒绝添加重复信息 722.6 选择控件应用 73实例063 利用选择控件实现权限设置 74实例064 利用选择控件实现复杂查询 762.7 ListView控件应用 78实例065  ListView列表拒绝添加重复信息 78实例066 将数据库数据添加到ListView控件 80实例067 用ListView控件制作导航界面 81实例068 在ListView控件中对数据排序或统计 83实例069 在ListView控件中绘制底纹 84实例070 在列表视图中拖动视图项 85实例071 用ListView控件选取整行数据 88实例072 用ListView控件开发登录界面 892.8 TreeView控件应用 91实例073 将数据库数据显示到树视图中 91实例074 用TreeView控件制作导航界面 93实例075 用TreeView控件遍历磁盘目录 94实例076 TreeView控件在数据库中的应用 96实例077 带复选框的树状菜单 982.9 其他控件典型应用 100实例078 TrackBar的简单应用 100实例079 SplitContainer的应用 102实例080 MaskedTextBox控件的简单应用 103实例081 制作日历计划任务 105实例082 ImageAnimator显示动画图片 108实例083 QQ头像列表 1102.10 控件技术 112实例084 程序运行时智能增减控件 112实例085 控制焦点移动 114实例086 动态创建控件 115实例087 在Button按钮上绘图 1162.11 焦点变换与输入控制 117实例088 按回车键焦点在控件中移动的录入窗口 117实例089 程序运行时拖动控件 119实例090 控件得到焦点时变色 120实例091 控件的输入限制 1212.12 特殊控件 122实例092 为控件制作立体效果 122实例093 获取控件名称和内容 124第3章 组件应用 1273.1 BackgroundWorker组件 128实例094  BackgroundWorker组件执行异步操作 1283.2 ErrorProvider组件 130实例095 使用ErrorProvider组件验证文本框输入 130实例096 利用ErrorProvider组件查看数据集中的错误 1323.3 EventLog组件 134实例097 使用EventLog组件读写Windows系统事件日志 134实例098 使用EventLog组件保存Windows系统日志 136实例099 使用EventLog组件向本机现有日志中添加条目 1383.4 FileSystemWatcher组件 140实例100 使用FileSystemWatcher组件监视系统日志文件是否被更改 1403.5 HelpProvider组件 142实例101 使用HelpProvider组件调用帮助文件 1423.6 Process组件 143实例102 使用Process组件访问本地进程 1433.7 Timer组件 145实例103 使用Timer组件制作计时器 145实例104 使用Timer组件显示当前系统时间 150实例105 使用Timer组件制作左右飘动的窗体 151实例106 使用Timer组件实现奥运倒计时 1523.8 ServiceController组件 154实例107 使用ServiceController组件控制计算机的服务 1543.9 ImageList组件 156实例108 使用ImageList组件制作动画图片 1563.10 DirectoryEntry组件 157实例109 使用DirectoryEntry组件建立虚拟目录 158第4章 图形技术 1614.1 绘制图形 162实例110 基本图形绘制 162实例111 在图片中写入文字 163实例112 局部图片的复制 165实例113 波形图的绘制 1664.2 图形转换 168实例114 BMP转换成JPG格式 168实例115 JPG转换成BMP格式 170实例116 位图转化为WMF 171实例117 Ico文件转化为位图 172实例118 图片批量转换工具 1734.3 图像预览 175实例119 局部图像放大 175实例120 浏览大图片 177实例121 剪切图片 178实例122 图像旋转 181实例123 鼠标拖拽图像 1824.4 图形缩放与变换 183实例124 如何放大和缩小图像 183实例125 如何旋转JPG图像 184实例126 如何实现图形翻转 1854.5 图像效果 186实例127 百叶窗效果显示图像 186实例128 推拉效果显示图像 187实例129 水平交错效果显示图像 188实例130 垂直交错效果显示图像 190实例131 图像纹理效果 191实例132 图像浮雕效果 193实例133 积木效果 194实例134 马赛克效果显示图像 1954.6 图像字体 197实例135 旋转的文字 197实例136 当前系统字体列表 198实例137 空心文字 199实例138 如何在图片上平滑移动文字 2014.7 图像动画 202实例139 动画背景窗体 202实例140 随鼠标移动的图像 203实例141 十字光标定位 204实例142 抓取鼠标形状 2064.8 图像识别 207实例143 查看图片的像素 207实例144 获取指定点的RGB值 2074.9 图像工具 208实例145 获取图片类型 208实例146 简单画图程序 209实例147 看图工具 213实例148 文字保存为图片 2154.10 图像应用 215实例149 随机更换壁纸程序 216实例150 屏幕保护 217实例151 模拟石英钟 219实例152 生肖速查 221第5章 多媒体技术 2255.1 CD、VCD播放 226实例153 播放指定的avi-mid-wav文件 226实例154 获取多媒体详细信息列表 2275.2 MP3、WAV播放 228实例155 带记忆功能的MP3播放器 228实例156 自动播放的MP3播放器 231实例157 学校体操定时音乐播放 2335.3 动画播放 234实例158 播放Flash动画 234实例159 制作AVI播放器 236实例160 播放Gif动画 237实例161 利用Image制作小动画 2395.4 媒体控制 240实例162 检测是否安装声卡 240实例163 打开和关闭CDROM 241实例164 控制PC喇叭发声 2425.5 多媒体应用 243实例165 开机祝福程序 243实例166 制作家庭影集 245实例167 产品电子报价 246实例168 产品滚动展示程序 248实例169 将图片资源添加到EXE里 2495.6 屏幕保护相关程序 250实例170 电子相册屏幕保护程序 250实例171 歌曲播放屏幕保护程序 251第6章 文件系统 2536.1 创建和删除文件 254实例172 创建和删除文件夹 254实例173 建立临时文件 255实例174 根据日期动态建立文件 256实例175 清空回收站 2576.2 查找文件 258实例176 搜索文件 259实例177 检查文件是否存在 260实例178 提取指定文件夹目录 2616.3 修改文件 261实例179 更改文件名称 262实例180 修改文件属性 262实例181 修改文件及目录的名字 2646.4 文件目录 265实例182 获得临时文件目录 265实例183 获取应用程序所在目录 266实例184 得到系统当前目录 266实例185 在程序中改变当前路径 2676.5 复制文件 268实例186 移动正在使用的文件 268实例187 批量复制文件 2696.6 指定类型的文件操作 270实例188 文本文件的操作 270实例189 简单的文件加密解密 2716.7 其他 273实例190 获取窗口文本 273实例191 判断文件是否正在被使用 274实例192 在程序中调用.HLP文件 275实例193  C#中实现文件拖放 276实例194 文件比较 276第7章 操作系统与Windows相关程序 2797.1 启动相关 280实例195 进入Windows前发出警告 280实例196 实现注销、关闭和重启计算机 2817.2 获得磁盘属性 284实例197 获得硬盘序列号 284实例198 获取映射驱动器路径 286实例199 判断驱动器类型 2877.3 磁盘相关设置 288实例200 取消磁盘共享 288实例201 检查驱动器容量 289实例202 检测磁盘是否准备好 290实例203 图表显示磁盘容量 291实例204 格式化磁盘 2937.4 系统控制 294实例205 怎样隐藏鼠标 294实例206 允许和禁止用户关机 295实例207 锁定计算机 2967.5 系统设置 297实例208 设置系统输入法 297实例209 设置桌面颜色 298实例210 鼠标交换左右键 2997.6 系统监控 299实例211 检测系统启动模式 300实例212 内存使用状态监控 301实例213 监视剪贴板内容 3027.7 系统软件信息 303实例214 获取用户名 303实例215 获取系统目录 305实例216 注册系统热键 306实例217 获取和修改BIOS计算机名 3077.8 鼠标操作 308实例218 动画鼠标 309实例219 限制鼠标活动区域 310实例220 获取鼠标在任意点的位置 311实例221 判断键盘按下的键值 3117.9 程序控制 312实例222 打开控制面板中的程序 313实例223 添加程序托盘 314实例224 不出现在任务栏上的程序 314实例225 怎样调用外部的Exe文件 315实例226 关闭外部已开启的程序 3167.10 程序运行 317实例227 防止程序多次运行 317实例228 开机后程序自动运行 319实例229 获取任务栏尺寸大小 320实例230 改变系统提示信息 321实例231 获取系统环境变量 322实例232 启动屏幕保护 3237.11 系统隐藏 324实例233 隐藏、显示任务栏 324实例234 隐藏、显示开始按钮 325实例235 查看当前系统版本 326实例236 使桌面图标文字透明 328实例237 检索系统中正在运行的任务 329实例238 列出系统中的打印机 3307.12 其他 332实例239 两种信息发送方式 332实例240 功能快捷键 336第8章 注册表 3398.1 操作注册表 340实例241 怎样存取注册表信息 340实例242 注册表保存注册信息 341实例243 设置“显示 属性”窗体 342实例244 列出注册表指定项下全部键值 3438.2 系 统 设 置 344实例245 隐藏、显示桌面图标 345实例246 隐藏驱动器 345实例247 禁用运行注册表 3478.3 IE浏览器设置 348实例248 修改IE浏览器标题栏内容 348实例249 隐藏IE浏览器的右键关联菜单 349实例250 设置IE浏览器的默认主页 350实例251 禁止修改IE浏览器主页 3518.4 应用软件设置 352实例252 设置Word 2000文档及图片的保存路径 352实例253 限制软件使用次数 353第9章 数据库技术 3559.1 连接Access数据库 356实例254 连接Access数据库 356实例255 连接加密的Access数据库 357实例256 自动识别Access 2000数据库路径 358实例257 连接网络上共享的Access 2000数据库 3609.2 连接SQL Server数据库 361实例258 使用ODBC DSN连接SQL Server数据库 361实例259 使用ODBC非DSN连接SQL Server数据库 364实例260 使用OLE DB连接SQL Server数据库 365实例261 建立SQL Server数据库连接 3669.3 连接其他数据库 367实例262 连接Excel 367实例263 连接Oracle数据库 3689.4 数据库结构的读取与修改 369实例264 读取SQL Server数据库结构 369实例265 修改SQL Server数据库结构 3729.5 数据录入 374实例266 利用数据绑定控件录入数据 374实例267 使用ADO.NET对象录入数据 376实例268 利用SQL语句录入数据 379实例269 利用存储过程录入数据 3809.6 图片存取技术 383实例270 使用存取文件名的方法存取图片 383实例271 使用ADO.NET对象向SQL Server数据库存入图片 3849.7 数据修改 387实例272 利用数据绑定控件修改数据 387实例273 利用数据对象修改数据 390实例274 利用SQL语句修改数据 391实例275 利用存储过程修改数据 3939.8 数据保存前判断 395实例276 判断输入数据是否符合要求 395实例277 通过存储过程实现自动编号 3989.9 数据删除 401实例278 删除表格中指定的记录 401实例279 利用SQL语句删除数据 4029.10 数据记录 403实例280 分页显示信息 403实例281 移动记录 4049.11 数据维护 406实例282 在C#中分离SQL Server数据库 406实例283 在C#中附加SQL Server数据库 407实例284 在C#中附加单文件SQL Server数据库 4099.12 数据备份恢复 410实例285 备份SQL Server数据库 410实例286 还原SQL Server数据库 4139.13 管理系统开发相关 415实例287 开启SQL Server数据库 415实例288 断开SQL Server数据库与其他应用程序的连接 417实例289 带图像列表的系统登录程序 419实例290 利用SQL语句执行外围命令 420实例291 系统初始化 421第10章 SQL查询相关技术 42510.1 SELECT子句 426实例292 查询特定列数据 426实例293 使用列别名 428实例294 在列上加入计算 430实例295 使用函数设置条件 43110.2 查询常量 432实例296 查询数字 433实例297 查询字符串 434实例298 查询日期数据 436实例299 查询逻辑型数据 437实例300 查询空数据 43810.3 查询变量 440实例301 利用变量查询字符串数据 440实例302 利用变量查询数值型数据 441实例303 利用变量查询日期型数据 44210.4 模式查询 444实例304 利用“_”通配符进行查询 444实例305 利用“%”通配符进行查询 445实例306 利用“[]”通配符进行查询 446实例307 利用“[^]”通配符进行查询 448实例308 复杂的模式查询 44910.5 TOP和PERCENT限制查询结果 450实例309 查询前10名数据 450实例310 取出数据统计结果的前10名数据 451实例311 查询销售量占前50%的图书信息 453实例312 查询库存数量占后20%的图书信息 45410.6 周期、日期查询 455实例313 查询指定日期的数据 455实例314 查询指定时间段的数据 457实例315 按月查询数据 45810.7 比较、逻辑、重复查询 460实例316 查询数据大于指定条件的数据 460实例317 NOT与谓词进行组合条件的查询 461实例318 查询时不显示重复记录 463实例319 列出数据中的重复记录和记录条数 46510.8 在查询中使用OR和AND运算符 466实例320 利用OR运算符进行查询 466实例321 利用AND运算符进行查询 467实例322 同时利用OR、AND运算符进行查询 46910.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 48710.10 聚合函数 488实例334 利用聚合函数SUM对销售额进行汇总 488实例335 利用聚合函数AVG求某班学生的平均年龄 490实例336 利用聚合函数MIN求销售额、利润最少的商品 492实例337 利用聚合函数MAX求月销售额完成最多的员工 493实例338 利用聚合函数COUNT求日销售额大于某值的商品数 495实例339 利用聚合函数First或Last求数据表中第一条或最后一条记录 49610.11 多表查询(连接查询) 498实例340 利用FROM子句进行多表查询 498实例341 使用表别名 499实例342 合并多个结果集 50110.12 嵌套查询 503实例343 简单嵌套查询 503实例344 复杂嵌套查询 504实例345 嵌套查询在查询统计中的应用 50610.13 子查询 508实例346 用子查询做派生的表 508实例347 用子查询作表达式 510实例348 在Update语句中应用子查询 51110.14 联合语句Union 512实例349 使用联合查询 512实例350 多表联合查询 514实例351 对联合查询后的结果进行排序 51510.15 内联接查询 517实例352 简单内联接查询 517实例353 复杂内联接查询 518实例354 使用内联接选择一个表与另一个表中行相关的所有行 51910.16 外联接查询 520实例355 left outer join查询 521实例356 right outer join查询 522实例357 使用外联接进行多表联合查询 52310.17 利用IN进行查询 525实例358 用IN查询表中的记录信息 525实例359 使用IN引入子查询限定查询范围 52610.18 交叉表查询 527实例360 利用Trasform分析数据 527实例361 利用Trasform动态分析数据 529实例362 静态交叉表(SQLServer 2000) 531实例363 动态交叉表(SQLServer 2000) 53310.19 函数查询 535实例364 在查询语句中使用格式化函数 536实例365 在查询语句中使用字符串函数 537实例366 在查询中使用日期函数 53810.20 having语句应用 540实例367 利用having语句过滤分组数据 540实例368 having语句应用在多表查询中 54110.21 视图的应用 543实例369 在C#中应用视图 543实例370 获取数据库中的全部用户视图 544实例371 通过视图修改数据 54510.22 存储过程的应用 546实例372 C#应用存储过程 546实例373 应用存储过程添加数据 547实例374 应用存储过程修改数据 549实例375 应用存储过程删除数据 550实例376 C#应用查询存储过程 551实例377 获取数据库中全部的存储过程 552实例378 加密存储过程 55310.23 触发器的应用 555实例379 Insert触发器的应用 555实例380 Update触发器在系统日志中的应用 556实例381 触发器的嵌套使用 557实例382 获取数据库中的触发器 559第11章 报表与打印技术 56111.1 Windows组件打印 562实例383 打印窗体中的数据 562实例384 图形打印 56411.2 利用报表生成器设计报表 566实例385 利用报表专家设计并显示学生基本信息 566实例386 分组统计报表 569实例387 在水晶报表中添加图表 57111.3 水晶报表基本操作 574实例388 在水晶报表中使用Access数据库 575实例389 在水晶报表中使用SQL Server数据库 576实例390 订货总金额超过10万元显示“恭喜获奖”文字 577实例391 薪资大于或等于1万元使用蓝色字体标记 580实例392 筛选薪资大于2000元的男员工 582实例393 按别分组统计图书库存 584实例394 按成绩总分降序排序 585实例395 部门销售量占公司总销售量的业绩百分比 58611.4 子报表的使用 588实例396 插入子报表 588实例397 编辑与重新导入子报表 589实例398 根据需要显示子报表 59111.5 调用Office进行打印 593实例399 利用Word打印员工报表 593实例400 利用Excel打印学生信息报表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值