使用datatable的时候出现"未将对象引用设置到对象的实例"的错误.

loepin 2005-03-21 06:39:52
这是什么回事?怎么办呢?
...全文
170 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSharpProgrammer 2005-03-21
  • 打赏
  • 举报
回复
没有声明DataTable的实例,如果你是用DataTable 直接有数据库返回的记录,那么就要注意数据库查询语句的问题。
Compass_ 2005-03-21
  • 打赏
  • 举报
回复
没有用显式地用new关键字创建,或者没有为datatable分配内存空间。
Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。 第一章 序言 第二章 简介 2.1.概述 2.2.背景 2.3.模块 2.4.许可证信息 2.5.支持 第三章 背景 3.1.控制反转 第一部分 核心技术 第四章 对象对象工厂和应用程序上下文 4.1.简介 4.2.IObjectFactory,IApplicationContext和IObjectDefinition接口介绍 4.2.1.The IObjectFactory和IApplicationContext 4.2.2.对象定义 4.2.3.对象的创建 4.2.3.1.通过构造器创建对象 4.2.3.2.通过静态工厂方法创建对象 4.2.3.3.通过实例工厂方法创建对象 4.2.4.泛型类的对象创建 4.2.4.1.通过构造器创建泛型类的对象 4.2.4.2.通过静态工厂方法创建泛型类的对象 4.2.4.3.通过实例工厂方法创建泛型类的对象 4.2.5.对象标识符(id和name) 4.2.6.Singleton和Prototype 4.3.属性,协作对象,自动装配和依赖检查 4.3.1.设置对象的属性和协作对象 4.3.2.构造器参数解析 4.3.2.1.根据参数类型匹配构造器参数 4.3.2.2.根据参数索引匹配构造器参数 4.3.2.3.根据名称匹配构造器参数 4.3.3.详细讨论对象属性和构造器参数 4.3.3.1.设置空值 4.3.3.2.设置集合值 4.3.3.3.设置泛型集合的值 4.3.3.4.设置索引器属性 4.3.3.5.内联对象定义 4.3.3.6.idref节点 4.3.3.7.引用协作对象 4.3.3.8.value和ref节点的简短格式 4.3.3.9.复合属性名 4.3.4.方法注入 4.3.4.1.查询方法注入 4.3.4.2.替换任意方法 4.3.5.引用其他对象或类型的成员 4.3.5.1.使用对象或类的属性值进行注入 4.3.5.2.使用字段值进行注入 4.3.5.3.使用方法的返回值进行注入 4.3.6.IFactoryObject接口的其它实现 4.3.6.1.Log4Net 4.3.7.使用depends-on 4.3.8.自动装配协作对象 4.3.9.检查依赖项 4.4.类型转换 4.4.1.枚举类型的转换 4.4.2.内置的类型转换器 4.4.3.自定义类型转换器 4.4.3.1.使用CustomConverterConfigurer类 4.5.自定义对象的行为 4.5.生命周期接口 4.5.1.1.IInitializingObject接口和init-method属性 4.5.1.2.IDisposable接口和destroy-method属性 4.5.2.让对象了解自己的容器 4.5.2.1.IObjectFactoryAware接口 4.5.2.2.IObjectNameAware接口 4.5.3.IFactoryObject接口 4.6.抽象与子对象定义 4.7.与IObjectFactory接口交互 4.7.1.获得IFactoryObject对象本身,而非其产品 4.8.使用IObjectPostProcessor接口自定义对象 4.9.使用IObjectFactoryPostProcessor定制对象工厂 4.9.1.PropertyPlaceholderConfigurer类 4.9.1.1.使用环境变量进行替换 4.9.2.PropertyOverrideConfigurer类 4.10.使用alias节点为对象添加别名 4.11.IApplicationContext简介 4.12.配置应用程序上下文 4.12.1.注册自定义解析器 4.12.2.创建自定义资源处理器 4.12.3.配置类型别名 4.12.4.注册类型转换器 4.13.IApplicationContext接口的扩展功能 4.13.1.上下文继承 4.13.2.使用IMessageSource接口 4.13.3.在Spring.NET内部使用资源 4.13.4.松耦合事件模型 4.13.5.IApplicationContext的事件通知 4.14.定制IApplicationContex中对象的行为 4.14.1.IApplicationContextAware标识接口 4.14.2.IObjectPostProcessor接口 4.14.3.IObjectFactoryPostProcessor接口 4.14.4.PropertyPlaceholderConfigurer类 4.15.从其它文件中导入对象定义 4.16.服务定位器访问 第五章. IObjectWrapper接口和类型转换 5.1.简介 5.2.使用IObjectWrapper接口管理对象 5.2.1.读、写普通及嵌套的属性 5.2.2.其它功能 5.3.类型转换 5.3.1.转换枚举类型 5.4.内置类型转换器 第六章. IResource接口 6.1.简介 6.2.IResource接口 6.3.内置的IResource实现类 6.4.IResourceLoader接口 6.5.IResourceLoaderAware接口 6.6.应用程序上下文和IResource路径 第七章. 多线程和并发操作 7.1.简介 7.2.线程本地存储 7.3.同步基础 7.3.1.ISync 7.3.2.SyncHolder 7.3.3.Latch 7.3.4.Semaphore 第八章. 对象池 8.1.简介 8.2.接口和实现 第九章. Spring.NET杂记 9.1.简介 9.2.PathMatcher 9.2.1.通用规则 9.2.2.匹配文件名 9.2.3.匹配子目录 9.2.4.大小写需要考虑,斜线可以任意 第十章. 表达式求值 10.1.简介 10.2.表达式求值 10.3.语言参考 10.3.1.文字表达式 10.3.2.属性,数组,列表,字典,索引器 10.3.2.1.定义内联的数组、列表和词典 10.3.3.方法 10.3.4.操作符 10.3.4.1.关系操作符 10.3.4.2.逻辑操作符 10.3.4.3.算术运算符 10.3.5.赋值 10.3.6.表达式列表 10.3.7.类型 10.3.8.类型注册 10.3.9.构造器 10.3.10.变量 10.3.10.1.'#this'和'#root'变量 10.3.11.三元操作符(If-Then-Else) 10.3.12.列表的投影(Projection)和选择(Selection) 10.3.13. 集合处理器和聚合器 10.3.13.1.Count聚合器 10.3.13.2.Sum聚合器 10.3.13.3.Average聚合器 10.3.13.4.Minimum聚合器 10.3.13.5.Maximum聚合器 10.3.13.6.nonNull处理器 10.3.13.7.distinct处理器 10.3.13.8.sort处理器 10.3.14.引用容器中的对象 10.3.15.Lambda表达式 10.3.16.空目标 10.4.本章使用的示例类型 第十一章. 验证框架 11.1.简介 11.2.用法示例 11.3.验证对象组 11.4.验证对象 11.4.1.条件验证对象 11.4.2.必需性验证对象 11.4.3.正则表达式验证对象 11.4.4.通用验证对象 11.4.5.条件型验证 11.5.验证行为 11.5.1.错误消息行为 11.5.2.通用行为 11.6.引用验证对象 11.7.在ASP.NET中的使用技巧 11.7.1.显示验证错误 11.7.1.1.配置错误显示类 第十二章. 使用Spring.NET进行面向方面的编程 12.1.简介 12.1.1.AOP基本概念 12.1.2.Spring.NET AOP的功能 12.1.3.Spring.NET的AOP代理 12.2.Spring.NET中的切入点 12.2.1.概念 12.2.2.切入点的操作 12.2.3.Spring.NET提供的切入点实现类 12.2.3.1.静态切入点 12.2.3.2.动态切入点 12.2.4.自定义切入点 12.3.Spring.NET的通知类型 12.3.1.通知的生命周期 12.3.2.通知类型 12.3.2.1.拦截环绕通知 12.3.2.2.前置通知 12.3.2.3.异常通知 12.3.2.4.后置通知 12.3.2.5.引入通知 12.4.Spring.NET中的Advisor 12.5.使用ProxyFactoryObject创建AOP代理 12.5.1.基本原理 12.5.2.ProxyFactoryObject的属性 12.5.3.代理接口 12.5.4.代理一个类 12.6.使用ProxyFactory类以编程方式创建AOP代理 12.7.管理目标对象 12.8.使用“自动代理”功能 12.8.1.自动代理对象的定义 12.8.1.1.ObjectNameAutoProxyCreator 12.8.1.2.DefaultAdvisorAutoProxyCreator 12.8.1.3.AbstractAutoProxyCreator 12.8.2.使用特性驱动的自动代理 12.9.使用TargetSources 12.9.1.动态切换TargetSource 12.9.2.池化TargetSource 12.9.3.PrototypeTargetSource 12.10.定义新的通知类型 12.11.参考资源 第十三章.通用日志抽象层 13.1.简介 13.1.1.Logging API 13.2.实现与配置 13.2.1.控制台Logger 13.3.Log4Net 第二部分. 中间层数据访问 第十四章. 事务管理 14.1.简介 14.2.动机 14.3.核心接口 14.4.用事务进行资源同步 14.4.1.高层次方法 14.4.2.低层次方法 14.5.声明式事务管理 14.5.1.理解Spring.NET声明式事务管理的实现 14.5.2.第一个例子 14.5.3.Transaction特性的设置 14.5.4.通过AutoProxyCreator使用声明式事务 14.5.5.通过TransactionProxyFactoryObject使用声明式事务 14.5.6. 通过ProxyFactoryObject使用声明式事务 14.5.7. Using Abstract object definitions 14.5.8. Declarative Transactions using ProxyFactoryObject 14.6. 编程方式的事务管理 14.6.1.使用TransactionTemplate 14.6.2.使用IPlatformTransactionManager 14.7.选择编程方式还是声明方式 第十五章. 数据访问对象 15.1.简介 15.2.统一的异常体系 15.3.为数据访问对象提供的统一抽象基类 第十六章. DbProvider 16.1.简介 16.1.1.IDbProvider和DbProviderFactory 16.1.2. XML配置 16.1.3.管理连接字符串 第十七章. 使用ADO.NET进行数据访问 17.1.简介 17.2.动机 17.3.Provider抽象 17.3.1.创建IDbProvider类型的实例 17.4.命名空间 17.5.数据访问的方式 17.6.AdoTemplate简介 17.6.1.执行回调 17.6.2.在.NET 2.0中执行回调 17.6.3. .NET 1.1 17.6.4.AdoTemplate方法指南 17.7.异常翻译 17.8.参数管理 17.8.1. IDbParametersBuilder 17.8.2. IDbParameters 17.9. Mapping DBNull values 17.10. Basic data access operations 17.10.1. ExecuteNonQuery 17.10.2. ExecuteScalar 17.11. Queries and Lightweight Object Mapping 17.11.1. ResultSetExtractor 17.11.2. RowCallback 17.11.3. RowMapper 17.11.4. Query for a single object 17.11.5. Query using a CommandCreator 17.12. DataTable and DataSet 17.12.1. DataTables 17.12.2. DataSets 17.13. Deriving Stored Procedure Parameters 17.14. Database operations as Objects 17.14.1. AdoNonQuery 17.14.2. AdoQuery 17.14.3. MappingAdoQuery 17.14.4. Stored Procedure 17.14.5. DataSetOperation 18. ORM集成 18.1. 简介 第三部分. Web框架 第十九章. Web框架 19.1.简介 19.2.自动装载应用程序上下文和应用程序上下文嵌套 19.2.1. 配置 19.2.2.上下文嵌套 19.3.为ASP.NET页面进行依赖注入 19.3.1.为Web控件进行依赖注入 19.4.Master Page 19.4.1.将子页面与Master Page关联 19.5.双向数据绑定 19.5.1.数据绑定的后台实现 19.5.1.1.绑定方向 19.5.1.2.Formatters 19.5.1.3.类型转换 19.5.1.4.数据绑定事件 19.6.本地化 19.6.1.使用Localizer进行自动本地化(“推”模型) 19.6.2.使用Localizer 19.6.3.手动应用资源(“拉”模型的本地化) 19.6.4.在Web应用程序中进行图像本地化 19.6.5.全局资源 19.6.6.用户语言文化管理 19.6.6.1. DefaultWebCultureResolver 19.6.6.2. RequestCultureResolver 19.6.6.3. SessionCultureResolver 19.6.6.4. CookieCultureResolver 19.6.7.更改语言文化 19.7.结果映射 19.8.客户端脚本 19.8.1.在HTML的head节点内注册客户端脚本 19.8.2.向节点中添加CSS定义 19.8.3.全局目录(Well-Known Directories) 第四部分. 服务 第二十章. .NET Remoting 20.1.简介 20.2.在服务端发布SAO 20.2.1.SAO Singleton 20.2.2.SAO SingleCall 20.2.3.IIS应用程序配置 20.3.在客户端访问SAO 20.4.CAO 最佳实践 20.5.在服务端注册CAO 20.5.1.向CAO对象应用AOP通知 20.6.在客户端访问CAO 20.6.1.向客户端的CAO对象应用AOP通知 20.7. XML Schema for configuration 20.8.参考资源 第二十一章. .NET企业服务 21.1.简介 21.2.服务组件 21.3.服务端 21.4.客户端 第二十二章. Web服务 22.1.服务端 22.1.1.消除对.asmx文件的依赖 22.1.2.向web服务中注入依赖项 22.1.3.将PONO发布为web服务 22.1.4.将AOP代理发布为web服务 22.1.5.客户端的问题 22.2.客户端 22.2.1.WebServiceProxyFactory 22.2.2.WebServiceClientFactory 第二十三章. Windows后台服务 23.1.备注 23.2.简介 23.3.Spring.Services.WindowsService.Process.exe应用程序 23.3.1.安装 23.3.2.配置 23.4.将应用程序上下文发布为Windows服务 23.4.1.service.config 23.4.1.1.让应用程序了解自身的位置 23.4.2.watcher.xml - 可选的配置 23.4.3.bin目录 - 可选 23.5.自定义或扩展 23.5.1. .config文件 第五部分. 与Visual Studio.NET集成 第二十四章. 与Visual Studio.NET集成 24.1.XML编辑与验证 24.2.XML Schema的版本 24.3.集成API文档 第六部分. 快速入门程序 第二十五章. IoC快速入门 25.1.简介 25.2.Movie Finder 25.2.1.开始建立MovieFinder应用程序 25.2.2.第一个对象定义 25.2.3.属性注入 25.2.4.构造器参数注入 25.2.5.总结 25.2.6.日志 25.3.应用程序上下文和IMessageSource接口 25.3.1.简介 25.4.应用程序上下文和IEventRegistry接口 25.4.1.简介 25.5.对象池示例 25.5.1.实现Spring.Pool.IPoolableObjectFactory 25.5.2.使用池中的对象 25.5.3.利用executor执行并行的grep 25.6.AOP 第二十六章. AOP指南 26.1.简介 26.2.基础知识 26.2.1.应用通知 26.2.2.使用切入点-基本概念 26.3.深入探讨 26.3.1.其它类型的通知 26.3.1.1.前置通知 26.3.1.2.后置通知 26.3.1.3.异常通知 26.3.1.4.引入(mixins) 26.3.1.5.通知链 26.3.1.6.配置通知 26.3.2.使用特性定义切入点 26.4.The Spring.NET AOP Cookbook 26.4.1.缓存 26.4.2.性能监视 26.4.3.重试规则 Spring.NET AOP最佳实践 第二十七章. .NET Remoting快速入门 27.1.简介 27.2.Remoting实例程序 27.3.实现 27.4.运行程序 27.5.Remoting Schema 27.6.参考资源 第二十八章. Web框架快速入门 28.1.简介 第二十九章. SpringAir - 参考程序 29.1.简介 29.2.架构 29.3.实现 29.3.1.业务层 29.3.2.服务层 29.3.3.Web层 29.4.总结 第三十章. 数据访问快速入门 30.1.简介 第三十一章. 事务管理快速入门 31.1.简介 31.2.应用程序概述 31.2.1.接口 第七部分. Java开发人员必读 第三十二章. Java开发人员必读 32.1.简介 32.2.Beans和Objects 32.3.PropertyEditor和TypeConverter 32.4.ResourceBundle和ResourceManager 32.5.异常 32.6.应用程序配置 32.7.AOP框架
封面 1 书名 2 版权 3 前言 8 目录 10 第一部份:Visual Basic 2010 环境 18 第一章 全身心投入:Visual Basic 2010 编程之旅 19 1.1 开始使用Visual Basic 2010 20 1.2 新建项目 20 1.3 理解 Visual Studio 2010 22 1.4 修改对象的属性 23 1.4.1 对象的命名 23 1.4.2 设置窗体的Text属性 24 1.4.3 保存项目 25 1.4.4 为窗体添加图标 25 1.4.5 改变窗体的大小 26 1.5 在窗体中添加控件 27 1.6 设计界面 27 1.6.1 在窗体中添加可见控件 28 1.6.2 在窗体中添加不可见控件 29 1.7 编写界面后面的代码 30 1.7.1 让用户浏览文件 30 1.7.2 使用代码终止程序 32 1.8 运行项目 33 1.9 总结 34 1.10 问与答 34 1.11 作业 35 1.11.1 测验 35 1.11.2 答案 35 1.11.3 练习 35 第二章 Visual Basic 2010导航 36 2.1 使用Visual Basic 2010起始页 36 2.1.1 创建新项目 37 2.1.2 打开现有项目 38 2.2 导航和定制Visual Basic环境 38 1. 显示和隐藏设计窗口 39 2. 浮动设计窗口 39 3. 停靠设计窗口 40 4. 自动隐藏设计窗口 41 2.3 使用工具栏 41 2.3.1 显示和隐藏工具栏 42 2.3.2 停靠工具栏及调整其大小 42 2.4 使用工具箱将控件添加到窗体 43 2.5 使用“属性”窗口设置对象属性 44 2.5.1 选择对象并查看其属性 44 2.5.2 查看和修改属性 44 2.5.3 使用颜色属性 45 2.5.4 查看属性说明 47 2.6 管理项目 47 2.6.1 使用“解决方案资源管理器”管理项目文件 47 2.6.2 使用解决方案 48 2.6.3 理解项目组件 49 2.6.4 设置项目属性 50 2.6.5 添加和删除项目文件 50 2.7 快速而简单的编程入门指南 51 2.7.1 用变量存储值 51 2.7.2 使用过程来编写代码功能单元 52 2.8 获取帮助 52 2.9 总结 53 2.10 问与答 53 2.11 作业 54 2.11.1 测验 54 2.11.2 答案 54 2.11.3 练习 54 第三章 理解对象和集合 55 3.1 理解对象 56 3.2 理解属性 56 3.2.1 获取和设置属性 57 3.2.2 使用对象及其属性 58 3.3 理解方法 61 3.3.1 触发方法 61 3.3.2 理解方法的动态性 61 3.4 创建简单的对象示例项目 62 3.4.1 为绘图项目创建界面 62 3.4.2 编写基于对象的代码 62 3.4.3 测试对象示例项目 65 3.5 理解集合 65 3.6 使用对象浏览器 67 3.7 总结 68 3.8 问与答 68 3.9 作业 69 3.9.1 测试 69 3.9.2 答案 69 3.9.3 练习 69 第四章 理解事件 70 4.1 理解事件驱动的编程 70 4.1.1 触发事件 71 4.1.2 避免递归事件 72 4.1.3 访问对象的事件 73 4.1.4 使用事件参数 74 4.2 创建事件示例项目 76 4.2.1 创建用户界面 76 4.2.2 创建事件处理程序 77 4.3 更新事件名 79 4.4 总结 79 4.5 问与答 80 4.6 作业 80 4.6.1 测试 80 4.6.2 答案 80 4.6.3 练习 81 第二部份 创建用户界面 82 第五章 创建窗体:基础知识 83 5.1 修改窗体的名称 84 5.2 改变窗体的外观 85 5.2.1 在窗体的标题栏中显示文本 85 5.2.2 改变窗体的背景色 86 5.2.3 将图像添加到窗体背景中 87 5.2.4 为窗体添加图标 88 5.2.5 为窗体添加最小化、最大化和控制框按钮 89 5.2.6 修改窗体边框的外观和行为 90 5.2.7 控制窗体最小化和最大化时的大小 91 5.3 显示和隐藏窗体 92 5.3.1 显示窗体 92 5.3.2 理解窗体的模态性 92 5.3.3 以正常、最大化或最小化状态显示窗体 93 5.3.4 指定窗体的初始显示位置 94 5.3.5 防止窗体在任务栏中出现 95 5.3.6 卸载窗体 95 5.4 总结 96 5.5 问与答 96 5.6 作业 96 5.6.1 测验 96 5.6.2 答案 97 5.6.3 练习 97 第六章 创建窗体:高级技能 98 6.1 使用控件 98 6.1.1 将控件添加到窗体中 98 6.1.2 操纵控件 99 6.1.3 创建Tab顺序 107 6.1.4 堆叠控件 109 6.2 创建位于最前面的非模态窗口 109 6.3 创建透明窗体 109 6.4 创建可滚动窗体 110 6.5 创建多文档界面 111 6.6 设置启动窗体 113 6.7 总结 114 6.8 问与答 114 6.9 作业 114 6.9.1 测验 114 6.9.2 答案 115 6.9.3 练习 115 第七章 使用传统控件 116 7.1 使用Lable控件显示静态文本 116 7.2 通过文本框让用户输入文本 117 7.2.1 指定文本对齐方式 118 7.2.2 创建多行文本框 118 7.2.3 添加滚动条 119 7.2.4 限制用户可输入的字符数 120 7.2.5 创建密码框 120 7.2.6 理解文本框的常用事件 121 7.3 创建按钮 121 7.3.1 接受按钮和取消按钮 122 7.3.2 使用复选框提供是/否选项 123 7.4 创建容器和单选按钮组 124 7.4.1 使用面板和分组框 124 7.4.2 使用单选按钮 125 7.5 使用列表框显示列表 126 7.5.1 在设计时操纵Items 127 7.5.2 在运行时操纵Items 127 7.5.3 对列表进行排序 131 7.6 使用组合框创建下?131 7.7 总结 132 7.8 问与答 133 7.9 作业 133 7.9.1 测验 133 7.9.2 答案 134 7.9.3 练习 134 第八章 使用高级控件 135 8.1 创建定时器 135 8.2 创建带选项卡的对话框 137 8.3 在图像列表(Image List)控件中存储图片 140 8.4 使用列表视图(List View)控件创建增强的列表 141 8.4.1 创建列 141 8.4.2 添加列表项 142 8.4.3 使用代码操纵List View 143 8.5 使用Tree View创建层次列表 144 8.5.1 在Tree View中添加节点 145 8.5.2 删除节点 146 8.5.3 清除所有节点 147 8.6 总结 147 8.7 问与答 147 8.8 作业 148 8.8.1 测验 148 8.8.2 答案 148 8.8.3 练习 148 第九章 给窗体添加菜单和工具栏 149 9.1 创建菜单 149 9.1.1 创建顶级菜单项 150 9.1.2 为顶级菜单创建菜单项 152 9.1.3 移动和删除菜单项 153 9.1.4 创建复选菜单项 153 9.1.5 对菜单进行编程 154 9.1.6 实现上下文菜单 156 9.1.7 为菜单项指定快捷键 157 9.2 使用Toolbar(工具栏)控件 158 9.2.1 使用按钮集合添加工具栏按钮 159 9.2.2 对工具栏进行编程 161 9.2.3 为工具栏按钮创建下?161 9.3 创建状态栏 162 9.4 总结 163 9.5 问与答 163 9.6 作业 163 9.6.1 测验 163 9.6.2 答案 164 9.6.3 练习 164 第三部份 编程 166 第十章 创建和调用过程 167 10.1 创建Visual Basic代码模块 167 10.2 编写过程 169 10.2.1 声明不返回值的过程 169 10.2.2 声明返回值的过程 172 10.3 调用过程 173 10.4 退出过程 177 10.5 避免无限递归 177 10.6 总结 178 10.7 问与答 179 10.8 作业 179 10.8.1 测验 179 10.8.2 答案 179 10.8.3 练习 180 第十一章 使用常量、数据类型、变量和数组 181 11.1 理解数据类型 182 11.1.1 确定数据类型 182 11.1.2 将数据从一种类型转换为另一种数据类型 184 11.2 定义和使用常量 185 11.3 声明和引用变量 186 11.3.1 声明变量 186 11.3.2 将字面值赋给变量 187 11.3.3 在表达式中使用变量 188 11.3.4 强制变量声明和数据类型检查 188 11.3.5 显式变量声明 188 11.3.6 严格类型检查 189 11.4 使用数组 191 11.4.1 声明数组 191 11.4.2 引用数组变量 191 11.4.3 创建多维数组 192 11.5 确定作用域 193 11.5.1 理解块作用域 193 11.5.2 理解过程级(局部)作用域 194 11.5.3 理解模块级作用域 194 11.5.4 使用全局(命名空间级)作用域 195 11.5.5 名称冲突 196 11.6 声明静态变量 196 11.7 命名规范 197 11.7.1 使用前缀表示数据类型 197 11.7.2 使用变量前缀表示作用域 198 11.7.3 其他前缀 198 11.8 在Picture Viewer项目中使用变量 198 11.8.1 为选项创建变量 198 11.8.2 初始化和使用选项变量 199 11.9 总结 201 11.10 问与答 202 11.11 作业 202 11.11.1 测验 202 11.11.2 答案 203 11.11.3 练习 203 第十二章 执行算术运算、字符串操作和日期/时间调整 204 12.1 使用Visual Basic执行基本的算术运算 204 12.1.1 执行加法运算 205 12.1.2 执行减法和求负运算 205 12.1.3 执行乘法运算 205 12.1.4 执行除法运算 205 12.1.5 执行乘方运算 206 12.1.6 执行取模算术运算 206 12.1.7 判断运算符优先级顺序 206 12.2 比较 207 12.3 理解布尔逻?208 12.3.1 使用And运算符 209 12.3.2 使用Not运算符(!) 209 12.3.3 使用Or运算符 209 12.3.4 使用Xor运算符 210 12.4 操纵字符串 210 12.4.1 连接字符串 210 12.4.2 使用基本的字符串函数 211 12.5 使用日期和时间 214 12.5.1 理解Date数据类型 214 12.5.2 增加或减少日期或时间 215 12.5.3 确定两个日期或时间之间的间隔 216 12.5.4 获取日期的组成部份 216 12.5.5 格式化日期和时间 217 12.5.6 获取当前的系统日期和时间 217 12.5.7 判断值是否为Date 218 12.6 总结 218 12.7 问与答 218 12.8 作业 219 12.8.1 测验 219 12.8.2 答案 219 12.8.3 练习 219 第十三章 使用Visual Basic代码做出决策 220 13.1 使用If...Then进行决策 220 13.1.1 当表达式为False时执行代码 222 13.1.2 使用ElseIf进行复杂的决策 223 13.1.3 嵌套的If...Else结构 224 13.1.4 在一条Case语句中考虑多个可能的值 225 13.1.5 创建Select Case示例 225 13.1.6 创造性地使用Select Case 227 13.2 在过程中使用GoTo实现分支 228 13.3 总结 230 13.4 问与答 230 13.5 作业 230 13.5.1 测验 230 13.5.2 答案 231 13.5.3 练习 231 第十四章 使用循环提高效率 232 14.1 使用For...Next执行确定次数的循环 232 14.1.1 使用Next语句结束循环 233 14.1.2 使用Step指定每次增加的值 233 14.1.3 提早结束循环 234 14.1.4 到达Next之前进入下一次循环 234 14.1.5 创建For...Next示例 235 14.2 使用Do...Loop执行次数不确定的循环 237 14.2.1 创建Do...Loop 237 14.2.2 终止Do...Loop循环 237 14.2.3 创建Do...Loop示例 238 14.3 总结 240 14.4 问与答 240 14.5 作业 241 14.5.1 测验 241 14.5.2 答案 241 14.5.3 练习 241 第十五章 调试代码 242 15.1 在代码中添加注释 243 15.2 识别两种基本的错误 244 15.3 使用Visual Basic的调试工具 246 15.3.1 使用断点 246 15.3.2 使用“即时”窗口 248 15.4 使用Try...Catch...Finally创建结构化错误处理程序 251 15.4.1 处理异常 253 15.4.2 处理预期的异常 254 15.5 总结 256 15.6 问与答 256 15.7 作业 257 15.7.1 测验 257 15.7.2 答案 257 15.7.3 练习 257 第十六章 使用类设计对象 258 16.1 理解类 259 16.1.1 使用类来封装数据和代码 259 16.1.2 比较类和标准模块 259 16.1.3 创建对象接口 260 16.2 根据类实例对象 265 16.2.1 将对象引用绑定到变量 265 16.2.2 解除对象引用 269 16.2.3 理解对象的生命周期 269 16.3 总结 270 16.4 问与答 270 16.5 作业 270 16.5.1 测验 270 16.5.2 答案 271 16.5.3 练习 271 第十七章 与用户交互 272 17.1 使用MessageBox.Show()函数显示消息 272 17.1.1 指定按钮和图标 273 17.1.2 判断单击的是哪个按钮 275 17.1.3 创建好的消息 276 17.2 创建自定义对话框 276 17.3 使用InputBox()从用户那里获取信息 279 17.4 用键盘交互 280 17.5 使用常见的鼠标事件 282 17.6 总结 284 17.7 问与答 285 17.8 作业 285 17.8.1 测验 285 17.8.2 答案 285 17.8.3 练习 286 第十八章 使用图形 287 18.1 理解Graphics对象 287 18.1.1 为窗体或控件创建Graphics对象 288 18.1.2 为新位图创建Graphics对象 288 18.2 使用?289 18.3 使用系统颜色 290 18.4 使用矩形 292 18.5 绘制形状 293 18.5.1 绘制线条 293 18.5.2 绘制矩形 293 18.5.3 绘制圆形和椭圆 293 18.5.3 清除绘图表面 294 18.6 绘制文本 294 18.7 持久化窗体上的图形 295 18.8 创建绘图示例项目 295 18.9 总结 299 18.10 问与答 300 18.11 作业 300 18.11.1 测验 300 18.11.2 答案 300 18.11.3 练习 301 第四部份 使用数据 302 第十九章 执行文件操作 303 19.1 使用OpenFileDialog和SaveFileDialog控件 303 19.1.1 使用OpenFileDialog控件 304 19.1.2 使用SaveFileDialog控件 306 19.2 使用File对象对文件进行操作 308 19.2.1 判断文件是否存在 308 19.2.2 复制文件 308 19.2.3 移动文件 309 19.2.4 重命名文件 310 19.2.5 删除文件 310 19.2.6 获取文件属性 311 19.3 使用Directory对象对目录进行操作 314 19.4 总结 315 19.5 问与答 315 19.6 作业 315 19.6.1 测验 315 19.6.2 答案 316 19.6.3 练习 316 第二十章 使用注册表和文本文件 317 20.1 使用注册表 317 20.1.1 理解Windows注册表的结构 318 20.1.2 使用My.Computer.Registry访问注册表 319 20.1.3 修改Picture Viewer项目以使用注册表 322 20.2 读写文本文件 326 20.2.1 写入文本文件 326 20.2.2 读取文本文件 328 20.2.3 修改Picture Viewer项目以使用文本文件 329 20.3 总结 332 20.4 问与答 333 20.5 作业 333 20.5.1 测验 333 20.5.2 答案 333 20.5.3 练习 334 第二十一章 使用数据库 335 21.1 ADO.NET简介 336 21.1.1 连接到数据库 337 21.1.2 关闭到数据源的连接 338 21.2 操作数据 338 21.2.1 理解DataTable 339 21.2.2 创建DataAdapter 339 21.2.3 创建和填充DataTable 340 21.2.4 引用DataRow中的字段 341 21.2.5 导航数据 342 21.2.6 编?344 21.2.7 创建新记录 344 21.2.8 删除记录 346 21.2.9 运行数据库示例 346 21.3 总结 346 21.4 问与答 347 21.5 作业 347 21.5.1 测验 347 21.5.2 答案 347 21.5.3 练习 348 第二十二章 使用自动化控制其他应用程序 349 22.1 自动化Microsoft Excel 350 22.1.1 创建指向自动化库的引用 350 22.1.2 创建自动化服务器实例 351 22.1.3 对服务器进行操作 352 22.2 自动化Microsoft Word 354 22.2.1 创建指向自动化库的引用 355 22.2.2 创建自动化服务器实例 355 22.3 总结 356 22.4 问与答 357 22.5 作业 357 22.5.1 测验 357 22.5.2 答案 357 22.5.3 练习 358 第五部份 部署应用程序及其他 360 第二十三章 部署应用程序 361 23.1 理解ClickOnce技术 361 23.2 使用发布向导来创建ClickOnce程序 362 23.3 测试Picture Viewer的ClickOnce安装程序 364 23.4 卸载已安装的应用程序 365 23.5 为创建ClickOnce程序设置高级选项 366 23.6 总结 367 23.7 问与答 367 23.8 作业 367 23.8.1 测验 367 23.8.2 答案 367 23.8.3 练习 368 第二十四章 广阔的视野 369 24.1 .NET Framework 369 24.2 公共语言运行时 370 24.3 微软中间语言 370 24.4 命名空间 371 24.5 通用类型系统 372 24.6 垃圾回收 372 24.7 进一步的阅读 373 24.8 总结 373 封底 374
本课程是PowerBI系列课程之DAX函数专题讲解,包含以下内容 1.  DAX函数基础知识什么是DAX函数数学函数:ABS、DIVIDE、MOD、RAND、ROUND、FIXED等日期和时间函数: CALENDAR、CALENDARAUTO、MONTH、YEAR、DATE、DT等信息函数:USERNAME、USERPRINCIPALNAME、HASONEFILTER、HASONEVALUE、ISFILTERED、ISCROSSFILTERED、ISINSCOPE、ISBLANK、SELECTEDMEASURE、SELECTEDMEASURENAME等逻辑函数:AND、OR、IF、IFERROR、SWITCH、TRUE、FALSE、COALESCE(官方文档含糊不清-结合实例)等关系函数:CROSSFILTER、RELATED、RELATEDTABLE等筛选器函数:FILTER、CALCULATE、ALL、ALLEXCEPT、ALLSELECTED、EARLIER、KEEPFILTERS、REMOVEFILTERS、SELECTEDVALUE、LOOKUPVALUE等父子函数:PATH、PATHCONTAINS、PATHITEM、PATHLENGTH等统计函数:AVERAGE、COUNT、MAX、MIN、SUM等迭代统计函数:AVERAGEX、COUNTX、MAXX、MINX、SUMX、RANKX等表函数: FILTERS 、ADDCOLUMNS、 SELECTCOLUMNS、 CROSSJOIN、 EXCEPT、 GENERATE、 GROUPBY、 SUMMARIZE、 SUMMARIZECOLUMNS、 TOPN、 TREATAS、 UNION、 VALUES、DISTINCT、DATATABLE、NATUALINNERJOIN、NATRUALLEFTOUTERJOIN等文本函数: EXACT、MID、 FIND、 LEN、 REPT、 LOWER、 UPPER、 UNICHAR等时间智能函数:DATEADD、DATESMTD、FIRSTDATE、LASTDATE、SAMEPERIODLASTYEAR等财务函数:2020.7之后发布的,和Excel中财务函数相似,网页和demo pbix简单介绍其他函数:BLANK、ERROR、IFERROR等 DAX函数初体验:Max、Sum、Divide、if、Values等值函数表函数以及表和列的概念DAX函数术语、语法、运算符DAX运算符和引擎中字母大小写问题DAX编程注释和快捷键DAX与Excel函数的共同点和区别(PPT)DAX、xmSQL与SQL表达式的区别(PPT)DAX函数的自学途径 2.  PowerBI中数据建模知识维度建模关系传递和交叉筛选器方向-理解表关系(1v1, 1vM, Mv1,MvM)两个方向上应用安全筛选器关闭关系自动检测新建计算列新建度量值新建计算表:辅助表(五种方式)、日历表数据类型讲解数据格式控制:%、$、千位分隔符、小数位、日期格式Format函数自定义数据格式Convert函数做数据类型转换解决中文数字单位 万 的显示问题Date和DT函数定义固定日期值显示和隐藏列DAX代码分析器阅读DAX表达式方法:从上至下、由内到外(注意Calculate的计算顺序)调试DAX表达式方法:分布输出或VAR输出3.  DAX函数原理 Vertipaq列式数据库原理理解度量值和计算列理解行上下文和筛选上下文:Calculate示意图行上下文中使用VAR替代EARLIERVAR变量在定义时的上下文中计算VAR变量是采用惰性计算(使用时计算)理解扩展表和RELATED函数理解数据沿袭Lineage 4.  开始感知DAX函数的强大DAX函数实现特殊符号的使用DAX函数实现切片器默认当前月或天DAX函数使切片器默认代表无任何选择DAX函数使切片器仅显示有数据的选项DAX函数使切片器反向筛选和计算DAX函数使切片器之间取并集DAX函数使关系中多端的切片器筛选一端的切片器 DAX函数实现年月共同决定数据排序DAX函数实现动态图表标题DAX函数实现动态图表配色和图标DAX函数实现动态纵坐标DAX函数实现动态横坐标5.  理解重点DAX函数重中之重FILTER 和 CALCULATE和CALCULATETABLE详解调节器REMOVEFILTERS和ALL、ALLEXCEPT函数调节器ALL、ALLSELECTED和ISINSCOPE占比分析调节器AllSELECTED和KEEPFILTERS的比较调节器USERELATIONSHIP激活关系调节器TREATAS动态建立关系调节器CROSSFILTER改变筛选器方向重点之ISFILTERED和ISCROSSFILTERED重点之HASONEVALUE和ISINSCOPE的区别重点之表函数SELECTEDCOLUMNS和ADDCOLUMNS重点之表函数NATUALINNERJOIN和NATRUALLEFTOUTERJOIN重点之表函数FILTERS和VALUES比较重点之VALUES和DISTINCT的区别重点之分组函数SUMMARIZECOLUMNS详解重点之函数LOOKUPVALUE vs RELATED vs VLOOKUP 重点之集合函数UNION、INTERSECT、EXCEPT重点之集合函数CROSSJOIN和GENERATE 笛卡尔积重点之值合并、列合并、表合并CONCATENATEX重点之BLANK行产生的原因和BLANK相关函数重点之COALESCE函数处理空重点之FIRSTNOBLANK和FIRSTNOBLANKVALUE函数重点之使用VAR变量表中的列重点之Error和IfError函数6.  实际案例-日期时间和时间智能相关关键点-日期表和事实表关联问题时间智能-同比环比分析时间智能-累计聚合、滚动聚合、移动平均时间智能-期初期末库存分析日期分析-计算任意所选月份的环比日期分析-周的同比环比和周聚合日期分析-指定月份的同比环比和季度环比日期分析-计算季末或季末月份的数据日期分析-趋势图中根据最近月份取TopN日期分析-动态指定某个日期区间分析日期分析-动态任意区间段做数据对比日期分析-实现两个日期列的范围筛选日期分析-按工作日计算日期差日期分析-计算最近两次购买日期差日期分析-根据历史数据做销售预测日期时间函数和时间智能函数使用总结7.  实际案例-DAX函数进阶进阶-解决列排序对计算的影响进阶-实现切片器筛选之间的OR逻辑进阶-矩阵Matrix中高亮显示最大值最小值进阶-DAX列转行 vs 矩阵列转行和逆透视进阶-非日期类型的累计聚合进阶-排名逻辑的4种实现-RANKX详解进阶-分组内排名的实现和理解迭代函数进阶-TopN/BottomN和Others的实现进阶-TopN中实现动态指标进阶-TopN中实现N的动态进阶-分组内动态TopN和Others 进阶-商品折上折-迭代函数SUMX详解 进阶-分析客户购买行为进阶-找出无购买行为的客户进阶-客户购买商品关联度分析 进阶-新客户分析进阶-流失客户分析进阶-回流客户分析进阶-客户购买频次和区间分析进阶-RFM客户价值分析进阶-帕累托分析进阶-盈亏平衡分析报表性能优化思路(PPT)  
封面 1 书名 2 版权 3 前言 8 目录 10 第一部份:Visual Basic 2010 环境 18 第一章 全身心投入:Visual Basic 2010 编程之旅 19 1.1 开始使用Visual Basic 2010 20 1.2 新建项目 20 1.3 理解 Visual Studio 2010 22 1.4 修改对象的属性 23 1.4.1 对象的命名 23 1.4.2 设置窗体的Text属性 24 1.4.3 保存项目 25 1.4.4 为窗体添加图标 25 1.4.5 改变窗体的大小 26 1.5 在窗体中添加控件 27 1.6 设计界面 27 1.6.1 在窗体中添加可见控件 28 1.6.2 在窗体中添加不可见控件 29 1.7 编写界面后面的代码 30 1.7.1 让用户浏览文件 30 1.7.2 使用代码终止程序 32 1.8 运行项目 33 1.9 总结 34 1.10 问与答 34 1.11 作业 35 1.11.1 测验 35 1.11.2 答案 35 1.11.3 练习 35 第二章 Visual Basic 2010导航 36 2.1 使用Visual Basic 2010起始页 36 2.1.1 创建新项目 37 2.1.2 打开现有项目 38 2.2 导航和定制Visual Basic环境 38 1. 显示和隐藏设计窗口 39 2. 浮动设计窗口 39 3. 停靠设计窗口 40 4. 自动隐藏设计窗口 41 2.3 使用工具栏 41 2.3.1 显示和隐藏工具栏 42 2.3.2 停靠工具栏及调整其大小 42 2.4 使用工具箱将控件添加到窗体 43 2.5 使用“属性”窗口设置对象属性 44 2.5.1 选择对象并查看其属性 44 2.5.2 查看和修改属性 44 2.5.3 使用颜色属性 45 2.5.4 查看属性说明 47 2.6 管理项目 47 2.6.1 使用“解决方案资源管理器”管理项目文件 47 2.6.2 使用解决方案 48 2.6.3 理解项目组件 49 2.6.4 设置项目属性 50 2.6.5 添加和删除项目文件 50 2.7 快速而简单的编程入门指南 51 2.7.1 用变量存储值 51 2.7.2 使用过程来编写代码功能单元 52 2.8 获取帮助 52 2.9 总结 53 2.10 问与答 53 2.11 作业 54 2.11.1 测验 54 2.11.2 答案 54 2.11.3 练习 54 第三章 理解对象和集合 55 3.1 理解对象 56 3.2 理解属性 56 3.2.1 获取和设置属性 57 3.2.2 使用对象及其属性 58 3.3 理解方法 61 3.3.1 触发方法 61 3.3.2 理解方法的动态性 61 3.4 创建简单的对象示例项目 62 3.4.1 为绘图项目创建界面 62 3.4.2 编写基于对象的代码 62 3.4.3 测试对象示例项目 65 3.5 理解集合 65 3.6 使用对象浏览器 67 3.7 总结 68 3.8 问与答 68 3.9 作业 69 3.9.1 测试 69 3.9.2 答案 69 3.9.3 练习 69 第四章 理解事件 70 4.1 理解事件驱动的编程 70 4.1.1 触发事件 71 4.1.2 避免递归事件 72 4.1.3 访问对象的事件 73 4.1.4 使用事件参数 74 4.2 创建事件示例项目 76 4.2.1 创建用户界面 76 4.2.2 创建事件处理程序 77 4.3 更新事件名 79 4.4 总结 79 4.5 问与答 80 4.6 作业 80 4.6.1 测试 80 4.6.2 答案 80 4.6.3 练习 81 第二部份 创建用户界面 82 第五章 创建窗体:基础知识 83 5.1 修改窗体的名称 84 5.2 改变窗体的外观 85 5.2.1 在窗体的标题栏中显示文本 85 5.2.2 改变窗体的背景色 86 5.2.3 将图像添加到窗体背景中 87 5.2.4 为窗体添加图标 88 5.2.5 为窗体添加最小化、最大化和控制框按钮 89 5.2.6 修改窗体边框的外观和行为 90 5.2.7 控制窗体最小化和最大化时的大小 91 5.3 显示和隐藏窗体 92 5.3.1 显示窗体 92 5.3.2 理解窗体的模态性 92 5.3.3 以正常、最大化或最小化状态显示窗体 93 5.3.4 指定窗体的初始显示位置 94 5.3.5 防止窗体在任务栏中出现 95 5.3.6 卸载窗体 95 5.4 总结 96 5.5 问与答 96 5.6 作业 96 5.6.1 测验 96 5.6.2 答案 97 5.6.3 练习 97 第六章 创建窗体:高级技能 98 6.1 使用控件 98 6.1.1 将控件添加到窗体中 98 6.1.2 操纵控件 99 6.1.3 创建Tab顺序 107 6.1.4 堆叠控件 109 6.2 创建位于最前面的非模态窗口 109 6.3 创建透明窗体 109 6.4 创建可滚动窗体 110 6.5 创建多文档界面 111 6.6 设置启动窗体 113 6.7 总结 114 6.8 问与答 114 6.9 作业 114 6.9.1 测验 114 6.9.2 答案 115 6.9.3 练习 115 第七章 使用传统控件 116 7.1 使用Lable控件显示静态文本 116 7.2 通过文本框让用户输入文本 117 7.2.1 指定文本对齐方式 118 7.2.2 创建多行文本框 118 7.2.3 添加滚动条 119 7.2.4 限制用户可输入的字符数 120 7.2.5 创建密码框 120 7.2.6 理解文本框的常用事件 121 7.3 创建按钮 121 7.3.1 接受按钮和取消按钮 122 7.3.2 使用复选框提供是/否选项 123 7.4 创建容器和单选按钮组 124 7.4.1 使用面板和分组框 124 7.4.2 使用单选按钮 125 7.5 使用列表框显示列表 126 7.5.1 在设计时操纵Items 127 7.5.2 在运行时操纵Items 127 7.5.3 对列表进行排序 131 7.6 使用组合框创建下?131 7.7 总结 132 7.8 问与答 133 7.9 作业 133 7.9.1 测验 133 7.9.2 答案 134 7.9.3 练习 134 第八章 使用高级控件 135 8.1 创建定时器 135 8.2 创建带选项卡的对话框 137 8.3 在图像列表(Image List)控件中存储图片 140 8.4 使用列表视图(List View)控件创建增强的列表 141 8.4.1 创建列 141 8.4.2 添加列表项 142 8.4.3 使用代码操纵List View 143 8.5 使用Tree View创建层次列表 144 8.5.1 在Tree View中添加节点 145 8.5.2 删除节点 146 8.5.3 清除所有节点 147 8.6 总结 147 8.7 问与答 147 8.8 作业 148 8.8.1 测验 148 8.8.2 答案 148 8.8.3 练习 148 第九章 给窗体添加菜单和工具栏 149 9.1 创建菜单 149 9.1.1 创建顶级菜单项 150 9.1.2 为顶级菜单创建菜单项 152 9.1.3 移动和删除菜单项 153 9.1.4 创建复选菜单项 153 9.1.5 对菜单进行编程 154 9.1.6 实现上下文菜单 156 9.1.7 为菜单项指定快捷键 157 9.2 使用Toolbar(工具栏)控件 158 9.2.1 使用按钮集合添加工具栏按钮 159 9.2.2 对工具栏进行编程 161 9.2.3 为工具栏按钮创建下?161 9.3 创建状态栏 162 9.4 总结 163 9.5 问与答 163 9.6 作业 163 9.6.1 测验 163 9.6.2 答案 164 9.6.3 练习 164 第三部份 编程 166 第十章 创建和调用过程 167 10.1 创建Visual Basic代码模块 167 10.2 编写过程 169 10.2.1 声明不返回值的过程 169 10.2.2 声明返回值的过程 172 10.3 调用过程 173 10.4 退出过程 177 10.5 避免无限递归 177 10.6 总结 178 10.7 问与答 179 10.8 作业 179 10.8.1 测验 179 10.8.2 答案 179 10.8.3 练习 180 第十一章 使用常量、数据类型、变量和数组 181 11.1 理解数据类型 182 11.1.1 确定数据类型 182 11.1.2 将数据从一种类型转换为另一种数据类型 184 11.2 定义和使用常量 185 11.3 声明和引用变量 186 11.3.1 声明变量 186 11.3.2 将字面值赋给变量 187 11.3.3 在表达式中使用变量 188 11.3.4 强制变量声明和数据类型检查 188 11.3.5 显式变量声明 188 11.3.6 严格类型检查 189 11.4 使用数组 191 11.4.1 声明数组 191 11.4.2 引用数组变量 191 11.4.3 创建多维数组 192 11.5 确定作用域 193 11.5.1 理解块作用域 193 11.5.2 理解过程级(局部)作用域 194 11.5.3 理解模块级作用域 194 11.5.4 使用全局(命名空间级)作用域 195 11.5.5 名称冲突 196 11.6 声明静态变量 196 11.7 命名规范 197 11.7.1 使用前缀表示数据类型 197 11.7.2 使用变量前缀表示作用域 198 11.7.3 其他前缀 198 11.8 在Picture Viewer项目中使用变量 198 11.8.1 为选项创建变量 198 11.8.2 初始化和使用选项变量 199 11.9 总结 201 11.10 问与答 202 11.11 作业 202 11.11.1 测验 202 11.11.2 答案 203 11.11.3 练习 203 第十二章 执行算术运算、字符串操作和日期/时间调整 204 12.1 使用Visual Basic执行基本的算术运算 204 12.1.1 执行加法运算 205 12.1.2 执行减法和求负运算 205 12.1.3 执行乘法运算 205 12.1.4 执行除法运算 205 12.1.5 执行乘方运算 206 12.1.6 执行取模算术运算 206 12.1.7 判断运算符优先级顺序 206 12.2 比较 207 12.3 理解布尔逻?208 12.3.1 使用And运算符 209 12.3.2 使用Not运算符(!) 209 12.3.3 使用Or运算符 209 12.3.4 使用Xor运算符 210 12.4 操纵字符串 210 12.4.1 连接字符串 210 12.4.2 使用基本的字符串函数 211 12.5 使用日期和时间 214 12.5.1 理解Date数据类型 214 12.5.2 增加或减少日期或时间 215 12.5.3 确定两个日期或时间之间的间隔 216 12.5.4 获取日期的组成部份 216 12.5.5 格式化日期和时间 217 12.5.6 获取当前的系统日期和时间 217 12.5.7 判断值是否为Date 218 12.6 总结 218 12.7 问与答 218 12.8 作业 219 12.8.1 测验 219 12.8.2 答案 219 12.8.3 练习 219 第十三章 使用Visual Basic代码做出决策 220 13.1 使用If...Then进行决策 220 13.1.1 当表达式为False时执行代码 222 13.1.2 使用ElseIf进行复杂的决策 223 13.1.3 嵌套的If...Else结构 224 13.1.4 在一条Case语句中考虑多个可能的值 225 13.1.5 创建Select Case示例 225 13.1.6 创造性地使用Select Case 227 13.2 在过程中使用GoTo实现分支 228 13.3 总结 230 13.4 问与答 230 13.5 作业 230 13.5.1 测验 230 13.5.2 答案 231 13.5.3 练习 231 第十四章 使用循环提高效率 232 14.1 使用For...Next执行确定次数的循环 232 14.1.1 使用Next语句结束循环 233 14.1.2 使用Step指定每次增加的值 233 14.1.3 提早结束循环 234 14.1.4 到达Next之前进入下一次循环 234 14.1.5 创建For...Next示例 235 14.2 使用Do...Loop执行次数不确定的循环 237 14.2.1 创建Do...Loop 237 14.2.2 终止Do...Loop循环 237 14.2.3 创建Do...Loop示例 238 14.3 总结 240 14.4 问与答 240 14.5 作业 241 14.5.1 测验 241 14.5.2 答案 241 14.5.3 练习 241 第十五章 调试代码 242 15.1 在代码中添加注释 243 15.2 识别两种基本的错误 244 15.3 使用Visual Basic的调试工具 246 15.3.1 使用断点 246 15.3.2 使用“即时”窗口 248 15.4 使用Try...Catch...Finally创建结构化错误处理程序 251 15.4.1 处理异常 253 15.4.2 处理预期的异常 254 15.5 总结 256 15.6 问与答 256 15.7 作业 257 15.7.1 测验 257 15.7.2 答案 257 15.7.3 练习 257 第十六章 使用类设计对象 258 16.1 理解类 259 16.1.1 使用类来封装数据和代码 259 16.1.2 比较类和标准模块 259 16.1.3 创建对象接口 260 16.2 根据类实例对象 265 16.2.1 将对象引用绑定到变量 265 16.2.2 解除对象引用 269 16.2.3 理解对象的生命周期 269 16.3 总结 270 16.4 问与答 270 16.5 作业 270 16.5.1 测验 270 16.5.2 答案 271 16.5.3 练习 271 第十七章 与用户交互 272 17.1 使用MessageBox.Show()函数显示消息 272 17.1.1 指定按钮和图标 273 17.1.2 判断单击的是哪个按钮 275 17.1.3 创建好的消息 276 17.2 创建自定义对话框 276 17.3 使用InputBox()从用户那里获取信息 279 17.4 用键盘交互 280 17.5 使用常见的鼠标事件 282 17.6 总结 284 17.7 问与答 285 17.8 作业 285 17.8.1 测验 285 17.8.2 答案 285 17.8.3 练习 286 第十八章 使用图形 287 18.1 理解Graphics对象 287 18.1.1 为窗体或控件创建Graphics对象 288 18.1.2 为新位图创建Graphics对象 288 18.2 使用?289 18.3 使用系统颜色 290 18.4 使用矩形 292 18.5 绘制形状 293 18.5.1 绘制线条 293 18.5.2 绘制矩形 293 18.5.3 绘制圆形和椭圆 293 18.5.3 清除绘图表面 294 18.6 绘制文本 294 18.7 持久化窗体上的图形 295 18.8 创建绘图示例项目 295 18.9 总结 299 18.10 问与答 300 18.11 作业 300 18.11.1 测验 300 18.11.2 答案 300 18.11.3 练习 301 第四部份 使用数据 302 第十九章 执行文件操作 303 19.1 使用OpenFileDialog和SaveFileDialog控件 303 19.1.1 使用OpenFileDialog控件 304 19.1.2 使用SaveFileDialog控件 306 19.2 使用File对象对文件进行操作 308 19.2.1 判断文件是否存在 308 19.2.2 复制文件 308 19.2.3 移动文件 309 19.2.4 重命名文件 310 19.2.5 删除文件 310 19.2.6 获取文件属性 311 19.3 使用Directory对象对目录进行操作 314 19.4 总结 315 19.5 问与答 315 19.6 作业 315 19.6.1 测验 315 19.6.2 答案 316 19.6.3 练习 316 第二十章 使用注册表和文本文件 317 20.1 使用注册表 317 20.1.1 理解Windows注册表的结构 318 20.1.2 使用My.Computer.Registry访问注册表 319 20.1.3 修改Picture Viewer项目以使用注册表 322 20.2 读写文本文件 326 20.2.1 写入文本文件 326 20.2.2 读取文本文件 328 20.2.3 修改Picture Viewer项目以使用文本文件 329 20.3 总结 332 20.4 问与答 333 20.5 作业 333 20.5.1 测验 333 20.5.2 答案 333 20.5.3 练习 334 第二十一章 使用数据库 335 21.1 ADO.NET简介 336 21.1.1 连接到数据库 337 21.1.2 关闭到数据源的连接 338 21.2 操作数据 338 21.2.1 理解DataTable 339 21.2.2 创建DataAdapter 339 21.2.3 创建和填充DataTable 340 21.2.4 引用DataRow中的字段 341 21.2.5 导航数据 342 21.2.6 编?344 21.2.7 创建新记录 344 21.2.8 删除记录 346 21.2.9 运行数据库示例 346 21.3 总结 346 21.4 问与答 347 21.5 作业 347 21.5.1 测验 347 21.5.2 答案 347 21.5.3 练习 348 第二十二章 使用自动化控制其他应用程序 349 22.1 自动化Microsoft Excel 350 22.1.1 创建指向自动化库的引用 350 22.1.2 创建自动化服务器实例 351 22.1.3 对服务器进行操作 352 22.2 自动化Microsoft Word 354 22.2.1 创建指向自动化库的引用 355 22.2.2 创建自动化服务器实例 355 22.3 总结 356 22.4 问与答 357 22.5 作业 357 22.5.1 测验 357 22.5.2 答案 357 22.5.3 练习 358 第五部份 部署应用程序及其他 360 第二十三章 部署应用程序 361 23.1 理解ClickOnce技术 361 23.2 使用发布向导来创建ClickOnce程序 362 23.3 测试Picture Viewer的ClickOnce安装程序 364 23.4 卸载已安装的应用程序 365 23.5 为创建ClickOnce程序设置高级选项 366 23.6 总结 367 23.7 问与答 367 23.8 作业 367 23.8.1 测验 367 23.8.2 答案 367 23.8.3 练习 368 第二十四章 广阔的视野 369 24.1 .NET Framework 369 24.2 公共语言运行时 370 24.3 微软中间语言 370 24.4 命名空间 371 24.5 通用类型系统 372 24.6 垃圾回收 372 24.7 进一步的阅读 373 24.8 总结 373 封底 374
【面试题库网整理 .net 面试题(附答案)(四)】 7. 某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则: (1) 密码单词的最小长度是两个字母,可以相同,也可以不同 (2) K不可能是单词的第一个字母 (3) 如果L出现,则出现次数不止一次 (4) M不能使最后一个也不能是倒数第二个字母 (5) K出现,则N就一定出现 (6) O如果是最后一个字母,则L一定出现 问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词? A) K B)L C) M D) N 答案:B 问题二:如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少? A)1个 B)3个 C)6个 D)9个 答案:A 问题三:下列哪一个是单词密码? A) KLLN B) LOML C) MLLO D)NMKO 答案:C 8. 62-63=1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动? 答案:62移动成2的6次方 new有几种用法 第一种:new Class(); 第二种:覆盖方法 public new XXXX(){} 第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。 2.如何把一个array复制到arrayList里 foreach( object o in array )arrayList.Add(o); 3.datagrid.datasouse可以连接什么数据源 [dataset,datatable,dataview] dataset,datatable,dataview , IList 4.概述反射和序列化 反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性 序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。 5.概述o/r mapping 的原理 利用反射,配置 将类于数据库表映射 7.用sealed修饰的类有什么特点 sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其它类的基类,则会发生编译时错误。 密封类不能同时为抽象类。 sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。 11.详述.NET里class和struct的异同! class:放在 ? struct放在? struct值传递 类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。 12.概述.NET里对 remoting 和 webservice 两项技术的理解和实际中的应用。 远程逻辑调用,remoing接口只能用在.net中 13.什么是code-behind技术 aspx and cs 14.概述三层结构体系 web/business/dataaccess 15.asp.net如何实现MVC模式,举例说明! web/business/dataaccess 2.什么是ASP.net中的用户控件 答:用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整. 3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释? 答:装箱就是把值类型转成引用类型,从MS IL角度看好像是boxing,没记错的话是把值从堆栈转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行时,其它的不清楚. 4.列举一下你所了解的XML技术及其应用 答:XML可是好东西,保存配置,站与站之间的交流,WEB SERVICE都要用它. 5.值类型和引用类型的区别?写出C#的样例代码。 答:结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的,这个不用多写了吧. 6.ADO.net中常用的对象有哪些?分别描述一下。 答:connection command sqladapter dataset datatable dataview等等.写不完了. 7.如何理解委托? 答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法. msdn2005中是这样解释的: 委托具有以下特点: 委托类似于 C++ 函数指针,但它是类型安全的。 委托允许将方法作为参数进行传递。 委托可用于定义回调方法。 委托可以链接在一起;例如,可以对一个事件调用多个方法。 方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。 C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。 【面试题库网整理 .net 面试题(附答案)(三)】 22.您要创建一个显示公司员工列表的应用程序。您使用一个DataGrid控件显示员工的列表。您打算修改这个控件以便在这个Grid的Footer显示员工合计数。请问您应该怎么做?( C? ) A.重写OnPreRender事件,当Grid的Footer行被创建时显示合计数。 B.重写OnItemCreated事件,当Grid的Footer行被创建时显示合计数。 C.重写OnItemDataBound事件,当Grid的Footer行被创建时显示合计数。 D. 重写OnLayout事件,当Grid的Footer行被创建时显示合计数。 23.您要创建ASP.NET应用程序用于运行AllWin公司内部的Web站点,这个应用程序包含了50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?(多选)( CD )   A.在这个应用程序的Global.asax文件中创建一个Application_Error过程去处理ASP.NET代码错误。   B.在这个应用程序的Web.config文件中创建一个applicationError节去处理ASP.NET代码错误。   C.在这个应用程序的Global.asax文件中创建一个CustomErrors事件去处理HTTP错误。   D.在这个应用程序的Web.config文件中创建一个CustomErrors节去处理HTTP错误。   E.在这个应用程序的每一页中添加一个Page指示符去处理ASP.NET 代码错误。   F. 在这个应用程序的每一页中添加一个Page指示符去处理ASP.NET HTTP错误。 24.您的公司有一个DB Server,名为AllWin,其上装了MS SQLSERVER 2000。现在需要您写一个数据库连接字符串,用以连接AllWin上SQL SERVER中的一个名为PubBase实例的Test库。请问,应该选择下面哪一个字符串?( B )   A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;Integrated Security=SSPI”   B. “Server= AllWin;Data Source=PubBase;Database=Test;Integrated Security= SSPI”   C. “Data Source= AllWin \PubBase;Initial Category=PubBase;Integrated Security= SSPI”   D. “Data Source= AllWin \ PubBase;Database=Test;Integrated Security= SSPI” 25.您为AllWin公司创建了一个ASP.NET应用程序。这个应用程序调用一个 Xml Web Service。这个 Xml Web Service 将返回一个包含了公司雇员列表的DataSet对象。请问您该如何在这个程序中使用这个 Xml Web Service?( ? )   A.在“引用”对话框的.Net标签中选择 System.Web.Services.dll。   B.在“Web引用”对话框中输入这个 XML Web service 的地址。   C.在您的 Global.asax.cs 中添加一条 using 语句并指定这个 XML Web service 的地址。   D.在您的 Global.asax.cs 中写一个事件处理器导入这个 Xml Web Service 相应的 .wsdl 和 .disco 文件。 26.您要创建一个ASP.NET应用程序在DataGrid控件中显示一个经过排序的列表。产品数据被存放于一个名为PubBase的Microsoft SQL Server 数据库。每个产品的主键是ProductID,Numeric型并且每个产品有一个字母描述字段,名为ProductName。您使用一个SqlDataAdapter对象和一个SqlCommand对象通过调用一个存储过程从数据库中获取产品数据。您将SqlCommand对象的CommandType属性设置为CommandType.StoredProcedure,并将它的CommandText属性设置为procProductList。您成功的获取了一个DataTable对象,其中是已经按ProductID降序排列的产品列表。您打算显示以相反的字母顺序排列的ProductName,请问该怎么做? ( B )   A. 将SqlCommand对象的CommandType属性修改为CommandType.Text,将CommandText属性修改为”SELECT * FROM procProductList ORDER BY ProductName DESC”。然后将这个DataTable对象绑定到DataGrid控件。   B. 创建一个基于这个DataTable对象的新的DataView并将这个DataView的Sort属性设置为“ProductName DESC”。然后将这个DataView对象绑定到DataGrid控件。   C. 将DataGrid控件的AllowSorting属性设置为True,并将DataGridColumn的SortExpression属性设置为 “ProductName DESC”.以显示ProductName。然后将这个DataTable对象绑定到DataGrid控件。   D. 将DataTable对象的DisplayExpression属性设置为 “ORDER BY ProductName DESC”.。然后将这个DataTable对象绑定到DataGrid控件。 76.C#代码实现,确保windows程序只有一个实例(instance) /// ///应用程序的主入口点。 /// [STAThread] staticvoid Main() { //防止程序多次运行 if(!OneInstance.IsFirst("GetPayInfo")) { MessageBox.Show ("警告:程序正在运行中! 请不要重复打开程序!可在右下角系统栏找到!","程序错误提示:",MessageBoxButtons.OK,MessageBoxIcon.Stop); return; } Application.Run(new Form1()); } // ******************* 防止程序多次执行 ************************** publicabstractclass OneInstance { /// ///判断程序是否正在运行 /// ///程序名称 ///如果程序是第一次运行返回True,否则返回False publicstaticbool IsFirst(string appId) { bool ret=false; if(OpenMutex(0x1F0001,0,appId)==IntPtr.Zero) { CreateMutex(IntPtr.Zero,0,appId); ret=true; } return ret; } [DllImport("Kernel32.dll",CharSet=CharSet.Auto)] privatestaticextern IntPtr OpenMutex( uint dwDesiredAccess, // access int bInheritHandle, // inheritance option string lpName // object name ); [DllImport("Kernel32.dll",CharSet=CharSet.Auto)] privatestaticextern IntPtr CreateMutex( IntPtr lpMutexAttributes, // SD int bInitialOwner, // initial owner string lpName // object name ); } 【面试题库网整理 .net 面试题(附答案)(二)】 8.以下代码段中能否编译通过?请给出理由。 try { } catch(FileNotFoundException e1) { } catch(Exception e2) { } catch(IOException e3) { } catch { } 9.对于一个实现了IDisposable接口的类,以下哪些项可以执行与释放或重置非托管资源相关的应用程序定义的任务?(多选) ( ABC ) A.Close B.DisposeC.Finalize D.using E.Quit 10.Net依赖以下哪项技术实现跨语言互用性?( C ) A.CLR B.CTS C.CLS D.CTT 11.请问: String类与StringBuilder类有什么区别?为什么在.Net类库中要同时存在这2个类?(简答) 如果要操作一个不断增长的字符串,尽量不用String类,改用StringBuilder类。两个类的工作原理不同:String类是一种传统的修改字符串的方式,它确实可以完成把一个字符串添加到另一个字符串上的工作没错,但是在.NET框架下,这个操作实在是划不来。因为系统先是把两个字符串写入内存,接着删除原来的String对象,然后创建一个String对象,并读取内存中的数据赋给该对象。这一来二去的,耗了不少时间。而使用System.Text命名空间下面的StringBuilder类就不是这样了,它提供的Append方法,能够在已有对象的原地进行字符串的修改,简单而且直接。当然,一般情况下觉察不到这二者效率的差异,但如果你要对某个字符串进行大量的添加操作,那么StringBuilder类所耗费的时间和String类简直不是一个数量级的。 12.以下哪个类是int的基类?( ) A.Int32 B.Object C.ValueType D.Int16 二、C# 部分* 13.以下哪些可以作为接口成员? (多选) ( ABDE ) A.方法B.属性C.字段D.事件E.索引器 F.构造函数G.析构函数 14.以下关于ref和out的描述哪些项是正确的?(多选) ( ACD ) A.使用ref参数,传递到ref参数的参数必须最先初始化。 B.使用out参数,传递到out参数的参数必须最先初始化。 C.使用ref参数,必须将参数作为ref参数显式传递到方法。 D.使用out参数,必须将参数作为out参数显式传递到方法。 15.“访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确描述?( B ) A.public B.protected C.internal D.protected internal 16.class Class1 { private static int count = 0; static Class1() { count++; } public Class1() { count++; } } Class1 o1 = new Class1(); Class1 o2 = new Class1(); 请问,o1.Count的值是多少?( C ) A.1 B.2 C.3 D.4 17.abstract class BaseClass { public virtual void MethodA() { } public virtual void MethodB() { } } class Class1: BaseClass { public void MethodA(string arg) { } public override void MethodB() { } } class Class2: Class1 { new public void MethodB() { } } class MainClass { public static void Main(string[] args) { Class2 o = new Class2(); Console.WriteLine(o.MethodA()); } } 请问,o.MethodA调用的是: ( A ) A.BaseClass.MethodAB.Class2.MethodA C.Class1.MethodAD.都不是 【.net 面试题系列文章一(附答案)】 1 (1)面向对象的语言具有__继承性_性、_封装性_性、_多态性 性。 (2)能用foreach遍历访问的对象需要实现 _ IEnumerable 接口或声明_ GetEnumerator 方法的类型。1.c#中的三元运算符是__?:__ 2.当整数a赋值给一个object对象时,整数a将会被__装箱___? 3.类成员有__3__种可访问形式? 4.public static const int A=1;这段代码有错误么?是什么? const成员都是static所以应该去掉static 5.float f=-123.567F; int i=(int)f; i的值现在是_-123____? 6.利用operator声明且仅声明了==,有什么错误么? 要同时修改Equale和GetHash() ? 重载了"==" 就必须重载 "!=" 7.委托声明的关键字是___ delegate ___? 8.用sealed修饰的类有什么特点?不可被继承 9.在Asp.net中所有的自定义用户控件都必须继承自_ System.Web.UI.UserControl _______? 10.在.Net中所有可序列化的类都被标记为__[serializable]___? 11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了_ gC __? 12.下面的代码中有什么错误吗?_ abstract override 是不可以一起修饰______ using System; class A { public virtual void F(){ Console.WriteLine("A.F"); } } abstract class B:A { public abstract override void F(); } 13.当类T只声明了私有实例构造函数时,则在T的程序文本外部,_不可以_(可以 or 不可以)从T派生出新的类,_不可以_(可以 or 不可以)直接创建T的任何实例。 14.下面这段代码有错误么?case():不行 default; switch (i){ case(): CaseZero(); break; case 1: CaseOne(); break; case 2: dufault; CaseTwo(); break; } 15.在.Net中,类System.Web.UI.Page 可以被继承么?可以

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧