欢迎来到 MSDN > 开发语言和工具

用 Visual Basic 和 SQL Server 2005 的 Express 版得到一个紧凑、简洁的开发机器

发布日期: 8/26/2004 | 更新日期: 8/26/2004

Brian A. Randell

本文基于 Visual Basic 2005 Express Edition 和 SQL Server 2005 Express Edition 的预发布版本。文中所包含的任何信息都可能会变更。

本文讨论:

这些新版本中的内容

构建 Windows 窗体应用程序

强大的工具和启动工具包 (Starter Kit)

创建并访问数据

异步调用 Web 服务

本文使用以下技术:
Visual Basic 和 SQL

下载可用代码:ExpressEditions.exe (578KB)

我只隐约记得我第一次尝试编写基于 Windows® 的应用程序。我使用 C 语言为 286 机器编程。实际上我一直试图忘却这整段经历。鉴于我是使用 COBOL 和 RPG 在一台 HP 3000 袖珍服务器上开始编程,比较而言,用 Windows 编程还是很痛苦的。
这种痛苦直到我第一次尝试了 Visual Basic®2.0 才结束,自此我爱上了在 Windows 中编程。我得说,我仍然热爱我所做的工作。随着公共语言运行库 (CLR) 和 Microsoft®.NET Framework 的引入,我真的觉得没有任何事情是我不能做的。虽然有人在进行 Windows 编程时喜欢用一些晦涩难懂的编辑器(例如,EMACS),甚至喜欢用一些实际上并不是编辑器的编辑器(例如,Notepad),但是我真的非常满意像 Visual Studio® 这样强大的工具的工作效率。不过,Visual Studio 的最大问题就是其相对较大的“体积”。拥有一个很好的轻量版本中的 Visual Studio 的核心利益(一个调试器、编辑并继续以及 IntelliSense®),让我能够编写基于 Windows 的程序而无需高额费用的企业级开发工具,这难道不是非常好吗?

新轻量级开发工具

唉呀,Microsoft 似乎能够读懂我的心思。作为新的 Visual Studio 2005 系列产品的组成部分,Microsoft 将发布以下五种新的开发工具:

Visual Basic 2005 Express Edition

Visual C#® 2005 Express Edition

Visual C++® 2005 Express Edition

Visual J#® 2005 Express Edition

Visual Web Developer 2005 Express Edition

在其核心,这些产品有许多与其专业版相同的功能。专业版的开发人员功能(例如,完全支持 IntelliSense、本地调试器、添加 Web 引用以及改进的可视化数据工具)在 Express 产品中都可用。有关全部详细信息,请访问 Visual Studio 2005 Express Beta 产品,以查看关于整个 Express 开发人员工具系列的功能列表、文章以及更新信息。

除了这些新的开发工具,SQL Server 小组还提供了对 Microsoft SQL Server®2000 Desktop Engine (MSDE 2000) 的更新。此新产品叫做 SQL Server 2005 Express Edition,是基于 SQL Server 2005 核心引擎的。它是作为一个可选组件与我前面所列出的 Visual Studio 2005 的各种 Express 版本一起包括在内的。

除了支持 SQL Server 2005 所有版本共有的新功能(有关更多信息,请参阅 MSDN®杂志2004 年 2 月刊),Express 版本也受益于改进的安装和部署、与各种语言特定的 Express 版本的集成,以及减小的下载大小。

就像 MSDE 2000 一样,SQL Server 2005 Express 与其全功能同辈产品相比将有一些限制。从 MSDE 2000 到 SQL Server 2005 Express,最大的内部改变是不再有一个工作负载调控器。.通过阅读新闻组以及与开发人员交谈,我知道这是大家对于 MSDE 2000 最困惑的一点。对于每个使用 MSDE 2000 构建应用程序但希望转而使用 SQL Server 2005 Express 的人来说,不再有工作负荷调控器是一大福音。图 1 中的图表汇总了一些要求和 MSDE 2000 与 SQL Server 2005 Express之间的主要差异。

返回页首

创建一个数据库

当我接触到 SQL Server 2005 Express 和 Visual Basic 2005 Express 的早期版本时,我决定构建一些有趣的东西。在目前这段时间,我想为我所有的书籍创建一个目录,但是我还想尽可能多地避免数据输入。因为我知道 Amazon.com 有一种 Web 服务,所以我考虑可以结合使用这两种测试产品来构建一个简单的个人图书馆应用程序。另外,我希望看到在不编写大量代码的情况下我能够完成多少工作。

关于以前版本的 MSDE 的最大的抱怨之一是缺少用于管理 MSDE 实例的 GUI 工具。SQL Server 2005 Express 解决了这一问题。它将拥有一整套用托管代码编写的图形化工具,用于设计并维护 SQL Server 2005 Express 安装。为了使整个 SQL Server 2005 Express 软件包的大小保持较小,GUI 工具是单独下载和安装的。图 2 显示了这些工具的早期图像。由于在我使用的早期版本中还没有这些工具,我使用了作为 Visual Basic 2005 Express(以及 Visual Studio 2005 的其他 Express 版和专业版)一部分的可视化数据工具。

图 2 SQL Express 管理器

SQL Server Express 安装集成到各种 Express 产品 SKU 中。在我使用的早期版本中,在 SQL Server 2005 Express 的安装过程中我没有被问到任何问题,我给出的惟一指令是进行安装。无需任何更多选项,SQL Server 2005 Express 就作为一个叫做 SQLEXPRESS 的命名实例安装了。

使我的应用程序开始工作的第一步是定义架构。我认为我需要 4 个核心表来开始工作。其后我可能决定添加其他的表来跟踪谁借了我的书等等,但对于这个项目,我只关心书本身 — 即书名、作者、出版商以及出版日期。

为了创建数据库,我启动了 Visual Basic 2005 Express。初始启动屏幕与常规 Visual Studio 版本不同。其目的是,通过立即提供一个带有选项的启动平台而非一个空白屏幕,使启动变得尽可能简单。图 3 显示了“启动”屏幕的 Beta 1 版。

使用 Visual Basic 2005 Express 和可视化数据工具,有两种方法可以创建 SQL Server 2005 Express 数据库。利用对 Visual Studio .NET 2003 中现有工具的经验,我打开了“服务器资源管理器”窗口(在 Visual Basic 2005 Express 中标记为“数据库资源管理器”),通过右击“数据连接”节点并选择“创建新 SQL Server 数据库”创建一个新的数据库。当您使用 Visual Basic 2005 Express中的集成工具时,只需定义 SQL Server 实例和数据库的名称(位置、文件名称等等是推断出来的)。请注意,在 Express 版中,可视化数据工具只允许编辑本地实例。在安装 SQL Server 2005 Express 时,数据库和日志文件存储在默认指定位置(通常是在 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data 下)。

SQL Server 2005 Express 和 Visual Basic 2005 Express 支持一个类似使用 Jet MDB 文件的可选机制。首先创建一个 Visual Basic 项目。项目创建后,我使用“添加新项”对话框来添加一个“空白数据库”对象(一个 SQL Server 2005 Express MDF 文件)。数据库连接使用一个叫做 AttachDBFilename 的新连接字符串设置链接到数据库文件。当一个连接被打开时,这个选项将强制数据库附加到服务器上(如果数据库还没有附加上去)。另外,如果在数据库创建时启用了 AUTO_CLOSE(这对SQL Server 2005 Express 数据库是默认的),当应用程序关闭时,数据库和日志文件可以被作为适用于 XCOPY 部署的常规操作系统文件管理。

最后,SQL Server 2005 Express 配套了两个命令行工具。第一个是 OSQL.EXE,它与 MSDE 2000 所附带的版本类似,在其基础上进行了更新以便与 SQL Server 2005 Express 进行会话。第二个是 SQLCMD.exe,它是 OSQL 的一个新改进版本。其众多的增强功能之一是对变量的支持,这使得编写可重复使用的管理脚本更容易了。使用 SQLCMD,您可以在其他工具中控制准确的数据库创建选项,例如,存储物理文件的目录。

返回页首

查询

数据库创建后,我需要定义架构。通常,我需要启动 SQLCMD 并输入 T-SQL 命令,例如,“CREATE TABLE”,但是可视化工具在呼唤我的名字。在四处查看有什么新东西的时候,我有了一个惊喜。右击一个数据库可以公开一个有多个命令(包括“新查询”命令)的上下文菜单。选择这一命令打开一个查询设计器窗口,它与在 Visual Studio .NET 2003 中可用的“新视图”窗口在形式和功能上相似。该新版本已经过特殊增强,使您不再仅能查询数据,还能进行其他操作。您现在对所有您可能已从命令行运行的 T-SQL 命令具有完全访问权限。如果您看一下 图 4,您会发现查询设计器中的“上下文”菜单甚至公开了一个显式“生成表”选项。

图 4 新查询设计器

返回页首

表和关系

在探究了查询设计器之后,我尝试了表设计器,通过“添加新表”命令,当右击数据库资源管理器中的表节点时表设计器可用。有了新表处理器,创建表的操作与以前版本的可视化数据工具(以及 SQL 企业管理器和 Microsoft Access)相似。设计器按预期方式运行,为应用程序的小架构定义表是快速而且轻松的。要定义主键、索引和关系,可以使用主菜单栏上的“表设计器”菜单项和一个相应的工具栏。我定义了所有4个表,还为每个表创建了一个主键。

下一步是定义这些表之间的关系,以便在必要时添加其他索引。要使用可视化数据工具定义一个关系,需要通过“打开表定义”命令(当在数据库资源管理器窗口中右击一个表时可用)在设计视图中打开一个表。一旦表打开了,“关系”命令可以从“表设计器”菜单(或其相应工具栏)获得。选择此命令打开“外键关系”对话框。一个表可定义任意数量的关系和约束。单击“添加”按钮创建一个新约束。为了定义一个关系,必须设置表与列规范属性。单击属性名称旁的“编辑器”按钮打开“表与列”对话框。就是在这里为关系匹配实际的列。

关闭对话框然后保存表会导致“保存更改到数据库”警告消息的出现,允许更改被应用、取消或保存到脚本文件以稍后执行。除了一个关系编辑器,还有索引/键对话框,它提供一个 UI 以逐表添加、修改或移除索引和键。

在此处我想要创建我的架构的数据库关系图。在我早期的版本中,它没有实现(尽管如您将要看到的,DataSet 设计器可以填写)。那么,最后一步是输入一些示例数据。通常,我可用使用查询设计器来执行 INSERT 语句。我还可以右击一个表并选择“显示表数据”命令,这会打开一个用于输入数据的 DataGrid 窗口。现在是构建主程序的时候了。

返回页首

使用 Visual Basic 2005 Express

Visual Basic 2005 Express 提供空白项目模板:Windows 应用程序、Windows 控件库和控制台应用程序。另外,在 Express 版中还有一个新功能:启动工具包 (Starter Kits)。Visual Basic 2005 Express 的DVD 收藏附带一个启动工具包。选择这一启动工具包打开一个有“ready-to-run”应用程序的新项目。图 5显示 DVD 启动工具包的“开始”文档。还有一个“添加新联机模板”选项用来从社区站点下载启动工具包。尽管这一功能还未实现,但它是一个很好的创意。该产品的已发布版本计划包括的信息有:如何将项目转换到一个启动工具包;如何将其发布到 Web 以便使其他人共享使用“新项目”对话框。所有的 Express 版都将支持这个功能。对于我的简单的图书管理器,我选择了一个新的 Windows 应用程序。

Visual Basic 2005 Express的另一个由其全功能的同辈共享的强大功能是“零干扰”项目。当您选择了文件 | 新项目,“新项目”对话框不会询问位置。它只询问项目类型和名称。直到您保存项目,才需要决定将其保存到哪里。实际上,您可以放弃一个项目,且无须担心在下一次启动 Visual Basic 2005 Express 的时候在您的硬件设备上查找 WindowsApplication368。

对 Windows 窗体设计器及所包括的控件和组件有很多改进,但到目前为止我最喜欢的功能是行对齐 (Snap Lines)。使用动态对齐行,行对齐帮助您在窗体上调整一个控件的大小并使其与另一个控件对齐。图 6 显示了一个蓝色行对齐,它帮助我将一个文本框与一个标签对齐。除了边框对齐,行对齐还将帮助您将一个控件的文本与另一个控件的文本基线对齐。有关其他增强功能的更多信息,请阅读 MSDN 杂志 2004 年 5 月刊中由 Michael Weinhardt 和 Chris Sells 撰写的文章 .NET Framework 2.0:用增强的 Windows 窗体支持为您的 .NET 应用程序制作一个丰富的 UI。

图 6 Windows 窗体设计器中的行对齐

对于我的应用程序,我有两个主要需求。第一,我需要一种方法来用 ISBN 号查询 Amazon.com Web 服务,以检索一本书的相关信息,从而可以将这些信息添加到我的数据库中。第二,我需要一种方法来浏览我藏量极大的图书库。由于数据库已构建而且我已经手工输入了一些示例数据,解决第二个需求看起来是个好主意。

返回页首

数据绑定

用内置工具进行数据绑定在每个 Visual Studio 版本中都变得越来越好。Visual Basic 2005 Express 有一个新窗口,叫做“数据源”窗口。默认与解决方案资源管理器一起提供,数据源窗口允许您管理所有来自一个中心位置的应用程序数据,无论它们是对象、Web 服务,还是从数据库填充的 DataSet。添加一个新的数据源可以启动数据源配置向导。第一页(如 图 7 所示)询问数据的源。Visual Basic 2005 Express(以及其他 Express 版本)只支持本地数据库、对象或 Web 服务。Visual Studio 2005 的专业(或更高)版本将支持您网络上其他机器上的数据库。

图 7 数据源配置向导

选择“本地数据库文件”选项要求您提供到一个 Jet MDB 文件或一个 SQL Server 2005 Express MDF 文件的路径。一旦数据库被选定,向导会枚举数据库,并允许您指定在您命名的 DataSet 中引用哪些对象,以及在完成时向导将创建哪些对象。在这个版本中,您可以选择表、视图、存储过程和函数。我选取了我所有的表并完成了向导。向导执行了一些步骤,而且,一旦完成,我就获得了一个 Dataset,其中包含在未改变关系的情况下作为 DataTables 映射的所有 4 个表,以及为获得数据到 DataSet 中而配置的 TableAdapter 对象。TableAdapter 是在以前版本的 .NET Framework 中使用的DataAdapter 类的一个类型化版本。它公开用于访问数据的类型化方法,并非只公开基础命令对象。图 8 以一种与数据库关系图相似的图形化方式显示我的 Dataset。

返回页首

创建一个 UI

当 Dataset 完成时,为图书馆浏览器构建 UI 也就是一些拖放工作了。有了一个在 Windows 窗体设计器中打开的窗体,我打开数据源窗口来拖放数据源到窗体上。在默认情况下,用新的 DataGridView 控件呈现列表源(例如,DataTable),但是这可以使用数据源上的下拉菜单更改。您可以通过展开数据源(例如,出版商表)来调整单独的列如何呈现,选择一个列,使用下拉菜单更改控件类型。请注意,您可以将一个完整的数据源或仅仅是单独的列拖动到窗体的设计界面。

当我拖放出版商表到窗体上时,将创建一个 DataGridView 控件和若干其他组件和控件。添加了三个组件:一个 DataSet、一个 DataConnector 和一个 TableAdapter。还包括了一个叫做 DataNavigator 的新混合式组件/控件。这个项有组件栏上的一个对象以及窗体上的一个 UI 部分。其整体意图是为数据源的导航提供一种标准实现。用户界面基于新的 ToolStrip 控件,并通过四个 RaftingContainer 控件支持在运行时停靠在屏幕的任意边。

DataSet 对象是不言自明的。它是窗体的用于访问数据库数据的运行时实例。DataConnector组件的用途是让绑定控件到基础数据源的过程更加简单。DataConnector 组件是需要绑定的数据源和控件之间的绑定对象。所有组件添加后,我就准备写一行代码来填充表,但是对我来说甚至那已经做好了。在窗体的加载事件中,发出了“填充”命令:

Me.PublishersTableAdapter.Fill(Me.MyAmazon_DataDataSet.Publishers)

IDE 注释了代码来让您知道,如果您不想要这个行为,您只要删除它或者注释掉它就可以了。我使用数据菜单中的“配置主从”命令在表间建立了主-从关系。该命令显示了一个对话框,您可以从中选择主资源并指定相应的子数据源(从由“数据源”窗口管理的列表供给)。您可以选择将新控件作为一个网格控件或者一组单独的控件来添加。

为了让窗体能够正确使用我的架构工作,我不得不添加一个视图来做一个联接。当前,“配置主从”窗口不处理基于中间链接表的关系,例如,我的架构中的 BooksToAuthors 表(请参见 图 8 所以我用可视化数据工具添加了该视图。在这里,我想让它成为我项目的“数据源”窗口中的数据源。要实现这种情况,有两种方法。一种是打开 Dataset 设计器并将视图从可视化数据工具中拖放到设计界面上另一种是重新运行向导。对单个对象来说,最简单的就是执行拖放操作。对添加和删除多个项来说,向导提供了一个友好的界面。

返回页首

调用 Web 服务

最后一个步骤是调用 Amazon Web 服务以获取有关一本特定图书的数据。在我写这篇文章的时候,Amazon 正在测试其 API 的一个新的主版本。这篇文章的代码下载(可从本文最前面的链接获取)包括用于访问 Amazon Web 服务的当前非 beta 版的代码。不过,我将把它作为一个练习留给您来查看代码。即便当 Amazon 发布其新的 API 时,仍会支持现有的 API。我使用众所周知的“添加 Web 引用”命令来连接到 Amazon.com 的 Web 服务界面以生成代理类。

Visual Studio 或 WSDL.exe 实用工具生成的代理类始终公开异步版本,所以当 Web 服务调用正在执行时调用线程不会被阻塞。不正确使用这些方法的问题是,当一个方法结束然后通过一个事件对其结束发出信号时,事件处理程序会在工作线程上执行。当从一个基于 Windows 的应用程序使用 Web 服务时,经常会需要从一个事件处理程序中的 Web 服务获取数据,并更新用户界面。问题是不允许从一个后台线程修改 UI。在以前的 .NET Framework 版本中,您可以这么做,而一旦您的应用程序发布出去后就会受可能发生的问题的影响。在 .NET Framework 2.0 中,如果您试图从错误的线程执行对 UI 元素的更新,运行时会引发异常。当然,目前使用 ISynchronizeInvoke(例如,Control.Invoke)从辅助线程切换到 UI 线程的可用技术仍然受支持。

新的 BackgroundWorker 对象提供了一种用于在辅助线程上安全执行长时间运行的任务的方法,同时从开发人员的角度看,只需很少代码和工作。为了使用它,我将一个实例拖放到我的窗体上。并将一个表示该实例的图标添加到组件栏。BackgroundWorker 公开了三个事件:DoWork、ProgressChanged ºÍ RunWorkerCompleted。另外,您可以指定应该支持状态事件和/或取消的辅助对象。通过调用 BackgroundWorker 对象的 RunWorkerAsync 方法,UI 线程启动了一个长时间运行的任务。此方法被重载以允许单个状态对象传递(如果需要)到辅助线程,而无须担心同步和锁定代码。调用 RunWorkAsync 导致 DoWork 事件被激发。在我的应用程序中,我需要从窗体上的一个 TextBox 传递 ISBN 号到辅助线程。这个方法是从按钮的单击事件处理程序调用的。

DoWork 事件处理程序是辅助线程(来自于内置的 CLR 线程池)的入口点。对于我的应用程序,对 Amazon.com Web 服务的调用就放在这里。当代码在 DoWork 内运行时,它可以有选择地调用 BackgroundWorker 实例的 ReportProgress 方法,该方法进而激发ProgressChanged 事件。ReportProgress 为说明多少工作已经完成的百分比整数值提供一个参数以及一个可选状态对象。处理 ProgressChanged 事件的代码将在 UI 线程上运行,从而进度栏或其他 UI 元素可以安全更新。一旦 DoWork 处理程序完成,RunWorkerCompleted 事件开始运行。此事件也由 UI 线程处理,使得更新 UI 安全地进行。在我的应用程序中,我用所需图书的信息填充 UI。

应该注意的是,本文中所描述的大多数 Express 功能在产品的专业版中也都是可用的。若需对两者之间的功能差异有简单了解,请参阅 图 9

返回页首

完全包装它

SQL Server 2005 Express 和 Visual Basic 2005 Express 都使得创建应用程序变得简单有趣。这些产品的小“体积”和全功能集将使您想要放弃使用 Notepad、命令行工具和编译器。而且,启动工具包的添加将使与其他使用适合您的编程语言和应用程序样式的 Express 版本的开发人员共享和交换应用程序变得容易。

Brian A. Randell 是 MCW Technologies 的高级顾问,也是 Microsoft 认证伙伴,擅长于用 .NET、SQL Server 和 Office 开发自定义应用程序。可以通过他的网络日记联系他,网址是 http://sqljunkies.com/WebLog/brianr。

来自于 2004 年 9 月号的 MSDN 杂志。
可在本地书报摊上买到,或者最好订阅

转到原英文页面

转载于:https://www.cnblogs.com/zycw001/archive/2005/10/24/261108.html

创建visual basic2005 数据库相关推荐

  1. 如何使用Visual Studio创建SQL Server数据库项目

    目录 背景 介绍 创建新的SQL Server数据库项目 发布以在SQL Server中创建新数据库 结论 背景 数据库在任何应用程序中都扮演着最重要的角色,当表.视图.存储过程的数量增加时,项目管理 ...

  2. 如何创建vss2005的数据库

    配置如下 VSS手工创建数据库的步骤(设数据库根目录为D:\VSS): 1.在根目录中创建名为srcsafe.ini(全局配置文件)的文件,文件内容如下: Data_Path = data Temp_ ...

  3. 如何锁定 Visual SourceSafe 数据库(转载)

    如何锁定 Visual SourceSafe 数据库 Christine Woskett 和 Oded Ye Shekel Visual SourceSafe Team Microsoft Corpo ...

  4. Visual SourceSafe 数据库安全性简介

    Visual SourceSafe 数据库安全性简介 作者:佚名    文章来源:网络    点击数: 327    更新时间:2007-6-18 Visual SourceSafe 数据库安全性简介 ...

  5. 详解 Visual C# 数据库编程

    详解 Visual C# 数据库编程 ****** 2007-11-05 14:34 关于数据库编程,微软提供了一个统一的数据对象访问模型,在Visual Studio6.0中称为ADO,在.NET中 ...

  6. ssis 创建ssisdb_SSIS目录数据库(SSISDB)简介

    ssis 创建ssisdb In this article, I am going to explain in detail the SSIS catalog that can be used to ...

  7. 阿里云rds for mysql平台介绍_阿里云RDS for MySQL实例创建账号和数据库?

    本文介绍如何为RDS for MySQL实例创建账号和数据库. 账号类型RDS for MySQL实例支持两种数据库账号:高权限账号和普通账号.您可以在控制台管理所有账号和数据库,账号拥有的具体权限请 ...

  8. PHP学习笔记 第八讲 Mysql.简介和创建新的数据库

    八.Mysql.简介和创建新的数据库 1.mysql简介与概要 mysql是一个小型关系型数据管理系统,开发者为瑞典mysqlab公司现在已经被sun公司收购 1.可以处理拥有上千万条记录的大型数据 ...

  9. 关于解决SpringDataJpa框架实体类表字段创建顺序与数据库表字段展示顺序不一致的问题

    关于解决SpringDataJpa框架实体类表字段创建顺序与数据库表字段展示顺序不一致的问题 参考文章: (1)关于解决SpringDataJpa框架实体类表字段创建顺序与数据库表字段展示顺序不一致的 ...

  10. sybase 数据导入mysql_Windows环境下Sybase12.5 数据库创建与导入数据库.docx

    Windows环境下Sybase12.5 数据库创建与导入数据库?? 现在的情况是,Sybase数据库已经安装完成了,需重新创建一个叫ptms的数据库,指定一个用户名sybase/sybase,具备全 ...

最新文章

  1. mysql以及mysql bench安装教程
  2. 7-5 表格输出 (C语言)
  3. java局部变量说法不正确的是_关于Java的成员变量和局部变量,下面说法错误的是...
  4. 钉钉、阿里云和PaaS平台的整合开发
  5. 我的世界梦之边缘5服务器在维护吗,8月5日服务器例行维护公告(已完成)
  6. POJ - 3415 Common Substrings(后缀数组+单调栈)
  7. c# 操作excle
  8. java设计模式迭代器模式_迭代器模式和Java
  9. CIF、QCIF、HD1、D1格式介绍
  10. 拒绝PPT手机?魅族首款真无孔手机将开启众筹
  11. Kaggle 数据清洗挑战 Day 5 - 处理不一致数据
  12. 【马来西亚】娘惹的含义
  13. 7-1 xbmc学习笔记
  14. 在一个公司,谁有业绩,谁就有说话权
  15. 干货 | 100大产业链全景图
  16. 未来教育计算机二级office评分有问题,未来教育计算机二级-未来教育计算机二级msoffice题库评分 – 手机爱问...
  17. 联想拯救者Y7000关闭触摸板
  18. 新浪微博开放平台使用
  19. 会计中阿拉伯数字变数字繁体大写
  20. matlab利用已知数据画图三维,Matlab三维数据画图和等高线数据提取

热门文章

  1. 阶段3 2.Spring_08.面向切面编程 AOP_8 spring中的环绕通知
  2. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_13_常用的函数式接口_Predicate接口中的默认方法and...
  3. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_07 缓冲流_3_BufferedInputStream_字节缓冲...
  4. The King’s Problem 强连通
  5. pc端字体大小自适应几种方法
  6. 通过sql脚本可以从数据库中查到数据,但是通过jdbc却获取不到
  7. 开发错误记录5-Failed to sync Gradle project ‘HideTitleDemo’
  8. 两个数组各个数相加或相乘变成一个矩阵求第K大
  9. 字典树 之 hdu 4099
  10. Delphi中用Sender参数实现代码重用