首页

通过孟繁永

用VS2005开发ASP.NET 2.0数据库程序 (转载)

用VS2005开发ASP.NET 2.0数据库程序
发布: 九度IT
注册: 2005-12-10
高级工程师
 2005-12-25, 22:41

     一、 简介
  
    在2005年11月7日,微软正式发行了.net 2.0(包括ASP.NET 2.0),Visual Studio 2005和SQL Server 2005。所有这些部件均被设计为可并肩独立工作。也就是说,ASP.NET版本1.x和版本2.0可以安装在同一台机器上;你可以既有Visual Studio.NET 2002/2003和Visual Studio 2005,同时又有SQL Server 2000和SQL Server 2005。而且,微软还在发行Visual Studio 2005和SQL Server 2005的一个 Express式的SKU。注意,该Express版并不拥有专业版所有的特征。
  
    2.0除了支持1.x风格的数据存取外,自身也包括一些新的数据源控件-它们使得访问和修改数据库数据极为轻松。使用这些数据源控件时,你只需简单地添加该控件到ASP.NET页面并通过这些控件的属性来配置连接串和SQL查询即可。然后,通过把数据Web控件的DataSourceID属性设置为数据源控件的ID,该数据源控件就能被绑定到一个数据Web控件(如GridView)上。现今,必须靠编写代码来创建连接,创建命令,指定SQL查询,检索一个DataReader或DataSet,并且把它绑定到数据Web控件的日子已经过去了。这些步骤能够通过使用声明性数据源控件来代替。(当然,你还能通过使用你的1.x代码中的熟悉的步骤编程地存取数据。)
  
    在本文中我们将看一下怎样连接和显示来自一ASP.NET 2.0数据库的数据。具体地说,我们将讨论怎样使用编程和声明性方法来存取数据,以及分析通过GridView控件来显示数据的基本操作。
  
    二、 在Visual Studio 2005中操作数据库
  
    当你安装Visual Studio 2005的任何版本时,你总是被询问是否你也想安装SQL Server 2005 Express版本。如果你选择Yes,这将安装你的开发包中的SQL Server 2005 Express版本-注意,在此你正在安装Visual Studio 2005!(SQL Server 2005 Express版本可以与SQL Server的其它版本一起安装,包括SQL Server 2000和SQL Server 2005的其它版本。)
  
    如果你在当前工程中使用SQL Server 2000,那么你可以通过企业管理器来以最舒适的方式操作数据库。尽管你仍能使用企业管理器来操作SQL Server 2000,或使用SQL Server 2005的管理Studio来操作你的SQL Server 2005数据库;但是,你也能通过Visual Studio 2005的数据连接来管理这些数据库。我提及这些是因为对于SQL Server 2005 Express版本来说,不存在一个象SQL Server 2000的企业管理器或SQL Server 2005的管理 Studio这样的GUI工具;代之的是,你必须通过Visual Studio 2005来创建和管理你的SQL Server 2005 Express版本数据库。
  
    提示 管理SQL Server 2005 Express版本数据库
  
    如果你有任何其它除 Express以外的SQL Server 2005版本,你可以在你的机器上安装客户端工具,它包括管理Studio-管理SQL Server 2005数据库的GUI工具。如果你安装了这个工具,你还可以使用它来管理SQL Server 2005 Express版本数据库。
  
  
  
  为了通过Visual Studio 2005来管理一个数据库,请选择到Server Explorer;在其上,你将找到一个数据连接结点(见上图的快照)。你可以通过在数据连接结点上单击鼠标右键来添加新的数据库连接并且选择”Add Connection”。这将会调出一个对话框提示你一些信息,如数据库服务器、认证信息、使用什么数据库等。如果你在自己的机器上安装了SQL Server 2005 Express版本,那么即缺省地通过使用名为SQL Express的实例安装了这个数据库。因此,要连接到的服务名将是YourMachineName\SQL Express或.\SQL Express。除了连接到一个现有数据库外,你还可以通过在数据连接结点上单击鼠标右键并且选择创建新的SQL Server数据库来创建一个新的数据库。
  
    一旦一个数据库被添加到该数据连接选项卡上,你就可以通过适当的文件夹来添加、删除或修改数据表,存储过程,视图等。为了创建一新的数据表或存储过程,右击适当的文件夹并且选择”Add New X”菜单选项;为了修改一现有数据表、存储过程或视图,双击之即可。这将把它们调用到Visual Studio中-在此你可以据需要修改它。你也可以观察和修改在单个数据表中的数据-这是通过右击一个数据表名并且选择”显示数据表数据”来实现的。
  
    三、 添加一数据库到App_Data文件夹
  
    除了通过数据连接选择卡添加现有数据库外,你还可以添加一个站点特定的数据库到该网站的App_Data文件夹下。App_Data是一新的,保留在ASP.NET 2.0中的文件夹-它被设计来存储数据有关的内容,包括SQL数据库文件(.mdf文件)、Access数据库文件(.mdb文件)、XML文件等。从一个ASP.NET网站工程,你可以轻松地创建并且添加一新的SQL Server 2005 Express数据库到你的工程-通过右击Solution Explorer中的App_Data文件夹并且选择”Add New Item”。然后,从”Add New Item”对话框(显示如下)中,选择添加一新的SQL数据库。
  
  
  
  如果你想跟随本文的步骤,那么请在App_Data文件夹下创建一个称为Customers.mdf的SQL Server 2005 Express数据库。然后,添加一个数据表到这个称为Customers的数据库-用下面字段列:CustomerID(一个自动增加的主键字段),Name,City,State和ZipCode。然后,通过VS 2005添加一些记录到这个数据表。
  
    另外,你还能添加现有Access数据库文件甚至SQL Server 2000数据库文件。(注意:为了添加一现有SQL Server 2000 .mdf文件,你将需要确定它是第一次从企业管理器上分离;为此,在企业管理器上右击数据库名字,再选择”All Tasks”并且选择”Detach数据库”。一旦你分离开该数据库并且把它添加到ASP.NET 2.0工程,你就可以通过企业管理器重新依附它。)

     四、 把SqlDataSource控件连接到数据库
  
    现在,既然我们看到了怎么创建并且通过Visual Studio的接口来使用数据库;下面,让我们把注意力转到从一个ASP.net 2.0 Web页面访问和显示来自一数据库的数据上。ASP.NET 2.0包括了几个新的数据源控件-它们的唯一目的是提供到数据的声明性存取。共有五个内置的数据源控件-它们都能够在Visual Studio中的工具箱的”数据”部分找到(请见下边的屏幕快照)。
  
  
  
  ·SqlDataSource-用于检索和修改来自于一个关系数据库的数据。这里的”Sql”并不意味着这种数据源只与微软SQL Server一起工作;而是可以与其它任何一种关系数据库一起工作:SQL Server,Access,Oracle,等等。如果你在连接到一个SQL Server数据库,那么控件将会非常聪明地在内部启用SqlClient类。
  
    ·AccessDataSource-用于检索和修改来自于一个Access数据库文件的数据。你可能想知道,如果SqlDataSource能够与Access数据库文件一起工作,那么为什么还存在这个控件呢?其实,这个Access数据源控件使得你更容易地连接到一个Access数据库-你只要指定到Access数据库的.mdb文件的路径即可。注意在使用SqlDataSource时,你需要使用一完全限定的指定数据提供者的连接串。
  
    ·ObjectDataSource-用于通过一个商业对象来检索和修改数据。理想地,你的ASP.NET应用程序包括一组类-它形成中间层(而不是让ASP.NET页直接操作数据库)。如果你有如此的结构,那么可以使用ObjectDataSource来查询中间层。
  
    ·XMLDataSource-用于检索来自一XML文件的数据。
  
    ·SiteMapDataSource-用于提供只读存取定义在站点地图中的站点结构。这个控件在当你想要在一个TreeView或Menu控件中显示一个站点的结构时使用。
  
    在本文中,我们将只讨论Sql数据源控件,并且仅分析其基本功能。
  
    首先,让我们添加一个Sql数据源控件到你的ASP.NET页面。从设计视图中,Sql数据源控件包含一个”灵敏标签”-它列举出它的常用功能。该”Configure Data Source”灵敏标签链接将激活一个向导-它将一步步引导你通过整个的配置数据源的过程。这个向导主要有三个步骤(和一个可选的”子步骤”):
  
    1. 选择你的数据连接-在第一步中,我们需要指定连接到什么数据库。这个屏幕包含在App_Data文件夹中数据库的一个下拉列表和在数据连接选项卡中的一个下拉列表。还有一个”New Connection”按钮-你可以点击它,如果你想要连接到一个不在这些位置之一中的数据库。如果你继续下去,可以从下拉列表框中选择Customers.mdf选项。
  
    a) 子步骤:如果这是你添加连接的第一次,你将会被提示是否你想要把连接串保存到Web.config之中;而且如果这样的话,应该是连接串的名字。如果你继续下去,我选择用名字CustomersConnectionString把连接串保存到Web.config中。
  
    2. 设置Select语句-下一步是指定你想要返回什么记录,应用什么样的条件语句以及返回数据的排序顺序。为此,你可以通过使用向导来选择一个数据表或视图并且选择返回哪一列,或你可以手工地输入一个SELECT语句。无论哪一种方法,都是让Sql数据源控件返回来自Customers数据表的所有的列-换句话说,让它实现”SELECT * FROM Customers”。
  
    3. 查询测试-你可以针对数据库运行你的SELECT查询以得到返回数据的一个预览。请自由地点击”Test查询”按钮;你应该看见所有的来自该Customers数据表的所有记录。
  
    一旦你配置好SqlDataSource,请拿出一点时间看一下Source视图并且检查一下为Sql数据源控件所使用的声明性标记:
  
  <asp:SqlDataSource ID=”SqlDataSource1″ runat=”server”
  ConnectionString=”<%$ ConnectionStrings:CustomersConnectionString %>”
  SelectCommand=”SELECT * FROM [Customers]”>
  </asp:SqlDataSource>
  
    有几点要注意:首先,ConnectionString属性使用了新的句法<%$ … %>。这个句法从Web.config文件中检索ConnectionStrings节的值的CustomersConnectionString值。换句话说,它从Customers数据库中获取连接串-该串是我们在Sql数据源控件的向导的子步骤中保存下来的;其次,SELECT查询语句是在控件的SelectCommand属性中指定的。
  
    这些数据源控件其自身只与数据一起工作。他们不显示数据。如果你通过你的浏览器访问这个ASP.NET页面,你将发现没有产生输出。为了观察由我们刚才创建的Sql数据源控件所返回的数据,我们需要添加一个数据Web控件。对于本文来说,让我们使用GridView控件-你也可以在工具箱的”数据”节中找到它。该GridView是ASP.NET 1.x的DataGrid控件的”老大哥”-它提供了一些新的特性。在本文中,我们只分析到GridView的简单的数据绑定。
  
    现在,我们把一个GridView控件拖动到你的ASP.NET页面上。从设计视图中,该GridView的灵敏标签包括一个”Choose Data Source”选项并且有一个下拉列表的所有的数据源控件在该页面上。把这个下拉列表设置为SqlDataSource1-即是我们刚添加的Sql数据源控件的ID。一旦做完这些,该GridView将自动地有一个BoundFields添加到它上面-对于由数据源所返回的每一列(该GridView的BoundField等价于DataGrid中的BoundColumn)。通过GridView的灵敏标签来设置”Choose Data Source”下拉列表就可以把GridView的DataSourceID属性设置为所选择数据源控件的ID。
  
    就这么多,不需要写一句代码!下面是通过一浏览器观看该GridView时的一个屏幕快照。
  
  
  
  通过使用GridView和Sql数据源控件,我们就能够在30秒内从一个空白页转到一个显示数据库数据表的内容的页面。事实上,我们可以在另一个30秒内完成把分页、双向排序、删除和编辑支持添加到该GridView上,现在且不多谈!) 
   
     五、 编程连接到一数据库
  
    如我们前面所见,使用一个SqlDataSource检索信息非常快捷,但是如果你想要编程地存取数据又会怎样呢?或者,也许你已经有了现成的代码-该代码将取得你想要的精确数据并且据需要进行管理;并且一旦完成,即修改你将要在一个GridView中所显示的数据。没有问题,你可以就象在1.x中一样地在2.0中存取数据-通过创建一个到数据库的连接,创建一个命令,指定查询,填充一个DataReader或DataSet,然后使用该控件的DataSource属性和DataBind()方法把结果绑定到数据Web控件。
  
    下列代码显示出一个ASP.net页面的Page_Load事件处理器-它编程地把Customers数据库数据表的内容绑定到GridView控件gVCustomers上:
  
  Protected Sub Page_Load(ByVal sender As Object, _
  ByVal e As System.EventArgs) Handles Me.Load
   If Not Page.IsPostBack Then
    ’Start by determining the connection string value
    Dim connString As String = ConfigurationManager.ConnectionStrings(connStringName).ConnectionString
    ’创建一个SqlConnection实例
    Using myConnection As New SqlConnection(connString)
     ’指定SQL查询
     Const sql As String = “SELECT * FROM Customers”
     ’创建一个SqlCommand实例
     Dim myCommand As New SqlCommand(sql, myConnection)
     ’取回一个DataSet
     Dim myDataSet As New DataSet
     ’创建一个SqlDataAdapter查询
     Dim myAdapter As New SqlDataAdapter(myCommand)
     myAdapter.Fill(myDataSet)
     ’把DataSet绑定到GridView
     gvCustomers.DataSource = myDataSet
     gvCustomers.DataBind()
     ’关闭连接
     myConnection.Close()
    End Using
   End If
  End Sub
  
    在此,要注意几点:为了取得连接串,我们可以参考Web.config中的连接串设置-使用句法为
  ConfigurationManager.ConnectionStrings(connStringName).ConnectionString。其中,connStringName的值应该是在Sql数据源控件向导(CustomersConnectionString)的子步骤中指定的值。另外注意,Visual Basic 8(2.0中使用的VB版本)现在支持Using关键字-这是在前面的版本中仅适于C#的一个语言特点。
  
    编程地存取数据和输出结果等同于使用Sql数据源控件的情况。
  
    六、 结论
  
    在本文中,我们分析了在Visual Studio 2005中使用ASP.NET 2.0数据库的情形。我们讨论了怎样通过Visual Studio管理数据库,以及怎样通过App_Data文件夹来添加网站特定的数据库。最后,我们分析了怎样使用Sql数据源控件和编程的方式来存取数据。当使用一个数据源控件时,通过设置GridView的DataSourceID属性来把数据绑到一个GridView控件上;当编程地访问该数据时,通过把数据赋值给GridView的DataSource属性和调用GridView的DataBind()方法来实现把数据绑定到GridView。(后一种方法遵循在ASP.NET 1.x中使用的模式来绑定数据到一个DataGrid。)不管使用哪一种方式来访问数据,最终的结果,如在一用户浏览器中所见的,皆是相同的。

http://www.9doit.com/Artielc/1655/ShowPost.aspx
通过孟繁永

常见.Net 英文专业词汇收集

abstract class 抽象类
accelerator 快捷键
accelerator mapping 快捷键映射
accelerator table 快捷键对应表
access modifier 访问修饰符
Access Pack 访问包
access specifier 访问说明符
access violation 访问冲突
accessibility 辅助功能
accessibility domain 可访问域
Accessibility Options 辅助功能选项
accessor 访问器
action 操作
Active Directory hierarchy Active Directory 层次结构
active document 活动文档
Active Document Containment 活动文档包容
active end 活动结尾
active object 活动对象
active point 活动点
Active Template Library 活动模板库
ActiveX Component ActiveX 组件
ActiveX control container ActiveX 控件容器
ActiveX Control Interface Wizard ActiveX 控件接口向导
ActiveX-enabled 支持 ActiveX 的
adaptor 适配器
Add key 加号键
Add-In 外接程序
Address Book 通讯簿
address space 地址空间
advise sink 通知接收
aggregate 聚合
Airbrush 喷枪
algorithm 算法
allocation hook 分配挂钩
allocator 分配器
Alternate text 替换文字,备用文本
animation control 动画控件
apartment-model threading 单元模型线程
Apply Now 立即应用
apply to similar 应用到相似项
argument 参数
array initializer 数组初始值设定项
array rank 数组秩
arrow cap 箭头帽
ArrowHourGlass 箭头沙漏
ArrowQuestion 箭头问号
article family 文章族
assembly 程序集;汇编
assembly manifest 程序集清单
assert 断言
associate 关联
asynchronous moniker 异步名字对象
asynchronous peek operation 异步查看操作
atomic operation 原子操作
attached table 附加表
Attributed Component Wizard 属性化组件向导
Attributed Programming 属性化编程
Attributes Property Attributes 属性
Authentication 身份验证
authorable 可创作(的)
Auto completion for commands 自动完成命令
Auto Increment 自动增加
Auto Syntax Check 自动语法校验
automation 自动化
automation-enabled 启用自动化
base implementation 基实现
be paged to disk 分页到磁盘
binary operator 二元运算符
bind 绑定
binder 联编程序
binding constraints 绑定约束
bit field 位域
bitmask 位屏蔽
bitwise 按位
bitwise complement operator 按位求补运算符
bit-wise equivalent 位等效数
bitwise or operator 位 or 运算符
block 块
block if If 块
blocking UI 模块化用户界面
Book Edition 试用版
bootstrapper 引导程序
bottom margin 下边距
bound 界限;绑定
bound control 绑定控件
bounding rectangle 边框
box 装箱 (v.)
break 分页;分行;中断 (v.);断点 (n.)
break compatibility 破坏兼容性
break execution 中断执行
breakpoint 断点
Bring Forward 上移一层
Bring In Front 上移一层
Bring to Front 置于顶层
broker 中间装置
Browse With 浏览方式
bubbling 冒泡
bucket 存储桶
buddy 合作者
buffer 缓冲区
build 生成 (v.);版本 (n.);编译
Builder 生成器
building block 构造块
built-in 内置
bulk row fetching 批量取行
Bulleted List 项目符号列表
business logic 业务逻辑
business process 业务处理
business rule 业务规则
cache 缓存
cacheability 可缓存性
call 调用
call back 回调
call invoke 调用 invoke(调用)
called procedure 被调用过程
caller 调用方
calling code 呼叫代码
calling convention 调用约定
calling process 调用进程
call-out interception 调出侦听
caption 标题
caret 插入符号
carriage return-linefeed 回车-换行
cascade 层叠,级联
case statement case 语句
case-sensitive 区分大小写
cast 强制转换
catalog 目录
catch block catch 块
catch handler catch 处理程序
category 类别
caution 警告
cell 单元格
cell padding 单元格填充
cell span 单元格跨距
challenge-response 质询-响应
check box 复选框
check constraint CHECK 约束
check in 签入
check out 签出
check state 复选状态
check the entry 检查项
check the number 检查数目
checkout 签出
child 子级(注:单独使用);子(注:构成词组)
child code 子代码
class 类
Class Builder Utility 类生成器实用工具
Class Library Reference 类库参考
classic 传统(型);传统风格(的);经典
clean 无变动(注:与 dirty 相对)
client area 工作区
Client Batch cursor library 客户端批处理游标库
client coordinate 客户端请求
client-based 基于客户端的
client-side 客户端
clip 剪裁;剪辑
Clipboard format 剪贴板格式
Clipboard-viewer chain 剪贴板查看器链
clipping region 剪辑区域
close parenthesis 右括号
Close region 临近区域
close up 闭合
closing set of angle bracket 结束双尖括号
closing tag 结束标记
CLS compliant 符合 CLS
clustered index 聚集索引
code pane 代码窗格
codebase 基本代码
code-behind 代码隐藏
Collapse to Definitions 折叠到定义
Collate 逐份打印
color scheme 配色方案
column span 列跨距
COM Classic COM 传统型
combinator 连结符
combo box 组合框
command handler 命令处理程序
Command line builds 命令行编译
command routing 命令传送
comment token 注释标记
compact 压缩;紧凑
compact version 精简版本
comparer 比较器
complex-bound 复杂绑定
component 组件
component authoring 组件创作
Component Services 组件服务
component tray 组件栏
compose buffer 写缓冲区
composition window 撰写窗口
concatenation operator 串联运算符
concurrency 并发
Congratulations 祝贺您
connection map 连接映射
connection point 连接点
considerations 连接字符串
constituent control 构成控件
constructor 构造函数
constructor initializer 构造函数初始值设定项
Consumer Template 使用者模板
contextify 实现上下文;对…实现上下文
contiguous 连续
contiguous range 连续范围
contract 连续范围
Control Containment 控件包容
Control Flow 控制流
conversion 转换
Cookieless 无 Cookie
coordinated universal time 协调通用时间
Copy 副本;复制
corrupt 损坏
Cracker 黑客
critical section 临界区
cross-process 进程间
cross-thread 线程间
CSS Specific CSS 特定
Cursor 光标;游标
Custom Actions Management 自定义操作管理
custom marshalling 自定义封送处理
cycle through 循环通过
Cyclic Redundancy Check 循环冗余校验 (CRC)
Dangling Reference 虚引用
data compartment 数据舱
data consumer 数据使用者
data store 数据存储区
data-aware 数据识别
database diagram 数据库关系图
datagram 数据报
DDE conversation DDE 对话
deallocate 解除分配;释放
decimal separator 小数点分隔符
decorated name 修饰名
Deep Copy 深层复制
default case-insensitive hash code provider 不区分大小写的默认哈希代码提供程序
default implementation 默认实现
Defect Report 缺陷报告
deformatter 反格式化程序
degrade 降低
degrade gracefully 完全降低
delegate 委托
delineated square 画有边线的方形
denial of service attack 拒绝服务攻击
Dep. 部署,deploy的缩写
dependency 依赖项
dependent file 依赖项目
deploy 部署
Deployment 部署
deprecate 否决
derive 派生
derived 导出(的);派生(的)
derived class 派生类
derived field 导出字段
derived type 派生类型
deserialize 反序列化
Designer Verb 设计器谓词
destination 目标
destination device 目标设备
destination rectangle 目标矩形
destroy 损坏
destructor 析构函数
detect 检测
Developer 开发者,开发人员,开发商
device 设备
device dependent 设备相关
Device Image 设备映像
Devide key 除号键
Diagram 关系图
diagram pane 关系图窗格
Diagram Surface 关系图面
dialog 对话,对话框
Diff-Merge 差异-合并
digest authentication 宿主;主应用程序;主机;主;承载
dimmed appearance 浅灰色
directive 指令
dispatch 调度
dispinterface 调度接口
Doc Relative 与文档相关的
Dock 停靠
dock 停靠
dockable 可停靠的
dominant 主导
downcast 向下转换
drop shadow 投影
drop target 放置目标
dump 转储
Elapsed Time 运行时间
Embedded 嵌入式的
encapsulate 封装
enclosing 封闭的
encompassing 包含的
Enlistment 版本
entry 条目,项
enumerate 枚举
enumerator 枚举数
enum-type 枚举类型
equivalent 等效
Erase 清除
escape 转义
evaluate 计算
evaluator 计算器
exception 异常
exception throw 引发异常
exclusive or XOR
explicit 显式
expose 公开
extend 扩展
Extensibility 扩展性
face 表面
factorability 可分解性
fast line 快速扫描线
favor 优选的
feature 功能
fetch 获取
field 字段
figure 图形;图例;数据
Filled Rectangle 实心矩形
filter 筛选;筛选器
finalize 完成
fire 激发
flow off 超出
footer 脚注
For details, see 有关详细信息,请参阅
foreign 外部的
form 形成,构造窗体;表单
Forms Authentication Forms 身份验证
four headed arrow 四向箭头
fractional-constants 小数常数
Free Bytes 可用字节
free threaded marshaler 自由线程封送拆收器
free-form modeling 自由窗体建模
friend 友元
Full Control component 完全控制组件
Full-Width Alpha-Numeric 全角字母-数字
Full-Width Katakana 全角片假名
fully populated 完全填充
fully qualified name 完全限定名
function profiling 函数分析
function timing 函数执行时间
Further Reading 其他阅读材料
gain access 获得访问权限
gain control 获得控制
Gallery 库
Garbage Collector 垃圾回收器
general accounting module 常规计帐模块
Gets or sets 获取或设置
global 全局的
Glyph 标志符号
Gozer Gozer;Gozer 处理
graphical representation 图形化表示形式
grid 网格
guarded section 保护区域
Guide Settings 参考线设置
Half-Width 半角
Half-Width Alpha-Numeric 半角字母-数字
Handle is not pinned 句柄未被固定
handler 处理程序
handy 快捷
hard-code 硬编码
hash 散列 (v.);哈希
hatched pattern 阴影图案
header control 标头控件
heuristics 试探法
hierarchical outline 分层大纲
hierarchy 层次结构
high-order 高序位
horizontal guideline 水平准线
host 主机,宿主
Hotfix 修补程序
hover 悬停
hub and spoke model 轮辐式模型
human-readable 可读的
identity operator 恒等运算符
illegal 非法
illustrate 阐释
IME 输入法编辑器(Input Method Editor)
impersonation 模拟
implementer 实施者
implicit 隐式
import 导入,输入
in spec 规格中
In this Section 本节内容
incoming 传入(的)
Independent 独立
indexer 索引器
Indicator Margin Click 单击指示器边距
inference 推理
infix notation 中缀符
initial capacity 初始容量
injected code 插入的代码
injection attack 注入式攻击
Inline 内联
in-place 就地
input mask 输入掩码
Input Method Editor 输入法编辑器
Install on Demand 即需即装
instantiate 实例化
Instantiate Live Controls 实例化活控件
intaller 安装程序
integrated 集成的
Intellisense 智能感知
interact 交互
interface 接口;界面
internal 内部的
interoperate 互用;交互操作
interrupt 中断
intrinsic 内部的
Invalid literal exponent 无效指数
invocation 调用
invocation list 调用列表
Is Dirty 已更新
isolated storage 独立存储
issue 发出
item 条目;项
iterate through 循环访问
iteration 迭代
jagged 交错的
join 联接
journal 日志,日记
jump 跳转
junction table 联接表
Just-in-time 实时
key 关键字;键;项(注:与注册表有关时)
key as string 键为字符串
key feature 主要功能
key file 密钥文件
keyset-driven 键集驱动
keyset-type 键集类型
kill 注销;取消
Knowledge Base 知识库
labeled statement 标记语句
LAME! 报告错误!
language equivalents 等效语言
lead byte 前导字节
least significant byte 最低有效字节
ledger 帐目型
left outer join 左外部联接
less derived 派生程度较小的
leverage (综合)利用;平衡
lexical scope 词法范围
lifetime 生存期
line break 分行符
list box 列表框
listener 侦听器,侦听者
Lite control Lite 控件
literal literal;文本
literal character 原义字符
load factor 加载因子
local 局部的;本地的
local machine 本地计算机
local storage 本地存储区
Locale 区域设置
locale 区域设置
locator 定位器
look up 查阅,查找
lookahead 预测先行
loop through 依次通过
loosely coupled 松耦合
low-order 低序位
Macros Dialog 宏对话
mainframe 主框架;大型机
managed 托管的
manifest 清单
many-to-many 多对多
map 地图,映射
mapping mode 映射模式
margin 边距; 空白
margin indicator 边距指示符
marquee 字幕
marshal 封送
marshal-by-reference 引用封送
marshaler 封送拆收器
mask 屏蔽;掩码
Match Case 大小写匹配
message pump 消息泵
middle-tier 中间层
migrate 迁移
Misc 杂项
Miscellaneous 杂项
moniker 名字对象
more derived 派生程度较大的
More Information 详细信息
more recent 较新的
multibyte 多字节
multicast 多路广播
Multiple-Inheritance 多重继承
Multiply key 乘号键
mutually exclusive 互相排斥
naked attribute naked 属性
Naked Function Calls 裸函数调用
named 命名的
namespace 命名空间
nanosecond 毫微秒
narrowing conversion 收缩转换
native 本机
navigator 导航器
New any 新建项
New anyAttribute 新建属性
New Technology file system NTFS 文件系统
newline 换行;换行符
No conversions are performed 未进行转换
nonaggregated 非聚集
non-scatter 非散点程序集
notation 表示法
nudge 微移
Numbered List 编号列表
Obfuscation 模糊处理
object-oriented programming 面向对象的编程
occurrence 匹配项;(视上下文也可省略不译)
On button down 当按钮按下
one-based 从一开始的
One-Click Web Hosting 鼠标一点,轻松发布到 Web
one-liner 单行方式
one-to-many 一对多
one-to-one 一对一
open 打开;开始;开放;左侧的(对于括号等成对的标记)
Open Database Connectivity 开放式数据库连接
open parenthesis 左括号
Open With 打开方式
opening brace 左大括号
opening tag 开始标记
operator 运算符;操作符
optimistic concurrency 开放式并发
ordinal 序号
Out of Memory 内存不足
Out Parameter 输出接口
outgoing interface 输出接口
Outlined Rectangle 空心矩形
out-of-band data 带外数据
out-of-process 进程外
Overall Steps 全部步骤
overhead 系统开销
overlap 重叠
overload 重载
Overload Induction 重载归纳
overload resolution 重载决策
overridable public function 可重写的公共函数
override 重写
Overview 概述
overwrite 改写
owned window 附属窗口
owner-drawn 所有者描述的
ownership 所属权
pack pragma 压缩杂注
package 打包
Package Body 包正文
padding 空白,边距(n.);填充
pager button 页导航按钮
pane 窗格
pass over 经过
pass-through 传递
peek 查看
peer 对方;对等;对方主机;同级
pending 挂起
per-column 按列的;基于列的;针对于列的
permission 权限
persistence 持久性;持久性存储
persister 持续程序
Pessimistic locking 保守式锁定
pie section 扇形区
pipe 管道
plate 盘片
pointer 点,指针
pointer-to-member 指向成员的指针(n.)
policy class 策略类
polymorphism 多态性
populate 填充
positioning 定位
postback 回发
post-processor 处理器后
potential mod by 0 潜在的以 0 求模
pragma 杂注
precedence 优先级
precompile 预编译
predefined 预定义的
preferences 首选项
preprocessor directive 预处理器指令
Presentation Tier 表示层
primitive 基元
principal 用户;主体
process 进程
profile 详细资料
profiler 分析器
profiling error 分析错误
Program 编程
programmatic access 编程访问
progress 进度
properly 正确地,适当地
property 属性
property attributes 属性特性
provider 提供程序
pseudo-marshalling 伪封送
publisher 出版商
push button 下压按钮
put area 放置区域
put pointer 放置指针
put up modal UI 提供模式用户界面
qualified name 限定名
qualifier 限定符
QuickStart 快速入门
radio check mark 选中标记
raise 引发
Rapid Application Development 应用程序快速开发
reader 读取器;阅读器
realign 重新对齐
rebar band rebar 带区
rebar control rebar 控件
Recordset 记录集
recurrence pattern 定期模式
recycle 回收
Redistributable 可再发行的
reference 引用
registrar 注册器
regular expression 正则表达式
related 相关的
related words 相关字
render 呈现
repeater 重复器
repository 储存库;库
reserve area 保留区域
reset 重置
reside 驻留
resident 驻留
resolve 解析
resolver 冲突解决程序
restore 还原
Retail configuration “发布”配置
rethrow 再次引发
retrieve 检索
revoke 撤消
rework 改编;返工
rich text 多格式文本
right outer join 右外部联接
root cause 根源
Root Relative 与根相关的
rootkey 根项
round trip 往返行程
routine 例程
row-major 行优先
Run Length Encoded 行程编码
run-time library 运行时库
salted hash Salted 哈希技术
satellite 附属
scatter assembly 散点程序集
schedule 安排 (v.)
schema 架构
scope resolution 范围解析
Scripting Host 脚本宿主
Scriptlet 脚本小程序
Section 区域;章节
See also 请参见
self-contained 独立的
self-join 自联接
self-referenced 自引用的
semi-trusted 不完全受信任的
Send Behind 下移一层
serialize 序列化
shadow 影像;镜像
shallow copy 浅表副本;浅表复制(copy 作动词时)
shared checkout 以共享方式签出
shift the focus 变换焦点
short circuit operator 短路运算符
short delay 短暂停留
shortcut key combinations 快捷组合键
sibling 同辈
signaled state 终止状态
significand 有效数
single tab stop 单个 Tab 停靠
single-dimensional 一维
single-document interface 单文档界面 (SDI)
Single-Inheritance 单一继承
sink 详细资料;分析
size grip 大小手柄
SizeAll 四向箭头
sizing grip 大小调整手柄
skeleton 主干
slash 斜杠
slider control 滑块控件
smart pointer 聪明指针
Snap-In 管理单元
snap-in 管理单元
snapshot 快照
specific to 特定于;针对
specifier 说明符
spin button control 数值调节钮控件
spin control 数值调节钮控件
Split Vertical In 左右向中央缩进
splitter 拆分器
splitter window 拆分窗口
spreadsheet 电子表格
stack frame 堆栈帧
stack walk 堆栈审核
standalone 独立
stand-alone 独立
starter application 起始应用程序
state bag 状态袋
statement 语句
stencil 模具
step a frame 通过一帧
Step By 调试方式
Step Into 逐语句;进入并单步执行;单步执行
Step Out 跳出
Step Over 逐过程
step through 逐句通过
step unit 单步执行单元
step-by-step 逐步骤
step-by-step details 详细步骤信息
step-by-step topics 分步指导的主题
stock 常用
straight quotation marks 直引号
streamer 流转化器
stress test 压力测试
string literal 字符串
stroke list 笔画列表
stub 存根
subkey 子项
subscriber 订户
subsequent 后面的
Substract key 减号键
superimposed 叠加的
Surpress banner 取消显示版权标志
surrogate web场
symbol store 符号存储区
symmetric key 对称密钥
tab 选项卡
Tab order Tab 键顺序
Tabbed 选项卡式的
tear-off 分开的
Technical Assistance 技术支持
technical note 技术说明
Technote 技术说明
Templated 模板化的
terminating line number emission 显示终止行号
This feature will remain uninstalled 将不安装此功能
thread 线程
threading 线程处理
threading model 线程模型
threshold 阈值
tick 刻度
tick mark 刻度线
tier 层
tightly coupled 紧耦合
to be supplied 待提供
to be written 待补
To Fit 合适大小
token 标记
Top margin 上边距
top-level 顶级
trace into 跟踪到
trackbar 跟踪条
trail byte 尾字节
transient 瞬态
trap 捕获
trappable 可捕获的
trigger 触发;触发器
truncate 截断
type specifier 类型说明符
typed 类型化的
typelib 类型库
typographic 版式
UI 用户界面
unattended execution 无人参与执行
unbox 取消装箱
underlying 基础
unescaped 非转义的
unit 单位,单元
Universal Coordinated Time 协调通用时间
unmanaged 非托管的
unmarshal 取消封送 (v.)
unsized 未确定大小的
upper bound 上限
upstream 上游
usage data 惯用数据
user interaction 用户交互
user-drawn 用户描述的
utility 实用工具
validator 验证程序
versionable 无版本冲突的
View 浏览,视图
virtual 虚拟
Walkthrough 演练
web farm web场,web园
web garden web园
Web-crawling Web 爬行遍历
wedge button 三角形按钮
well-behaved 功能良好的
well-defined 定义完善的
Whitespace 空白
wide-character 宽字符
widening 扩大
worker thread 辅助线程
Workspace 工作区
wrapper 包装
zero-based 从零开始的
zomby 僵停
通过孟繁永

这算第一次谈项目吗?

        昨天晚上师姐约了我出去谈这个事情,还顺便送了我一条裤子。说起来这条子应该是女款的,有典型的特征,低腰,瘦,裤腿长。

        其实自己知道出去谈总要准备些资料,但没有人帮我做,看了一天电脑,实在没有心思再搞什么材料了。所以直接坐车过去。

        跟一个男人说了两三个小时,我对他们的业务不了解,所以基本上是问什么答什么。有时候两个人都不说话,让旁边看的飞飞很莫名。

        我并不想留在武汉工作,我对这里不是很感兴趣。我更喜欢北京,不管那里曾经发生过什么。

通过孟繁永

美好的一天

         尽管天气仍然很热,但这又是一个很有收获的一天,书稿翻译了几页,基本完成了今天的任务。下午王小光师兄带我来到他的一个同学的公司,算是又接了一单。

         肖洋也是一个很帅气的师兄,他原来竟在桂四416住了三年,说起这个,交情就骤然加深了许多。而他对我在厕所门口开橱的行为大为感叹。

          他让做的网站所涉及的资料都拷回来了,美工不错,代码也要写好,不能辜负了一番盛情。

通过孟繁永

这是怎样一个夜晚

        公元2006年7月21日晚,这也并不是一个很特别的夜,只不过有点热,实在是无法再忍受四楼的炙烤,决心凭自己的运气和智慧以及胆量下来找个能过夜的地方。

        经过一番努力,终于进入了理想的房间,通了电,还搬来了电脑,写下了这篇文字的时候,我正看中央台的同一首歌。虽然这并不是值得自豪的,但在这种严酷的环境中,谁不想为自己争得一点更好的条件呢?希望上天能够理解我们的处境。川大已经有人殉职了,我们不能再做无谓的牺牲。

        实验室的气氛不错,工作效率还是很高的,我还是刚刚进入状态,以后会更努力的,虽然大四了才进入到这里,但毕竟只要珍惜会有很多收获。魏泉是个很有魅力的人,虽然我最近比较压抑,但他仍然在努力为实验室营造一个活泼积极的氛围。

        目前的翻译工作至少还要持续八天,这也是最长的期限,我的第一个任务,应该好好完成。

         其实.NET方面我还只是刚刚入门,说严重一点甚至是跟本没有理解其真正内涵。希望这个短短的假期有一个质的突破。这是我期盼已久的一刻,值得纪念。

        平时第一份求职简历投出去了,到目前仍然没有消息,尽管是师兄推荐的,但我仍然感觉没有十分的把握。至少是一个心境的体验吧。

通过孟繁永

一个美丽的夜晚

在我最迷茫的时候,我突然发现了你,就在那栋高楼的楼道里。你静静地坐在楼梯上,闭着眼睛,听到有人来了,你抬起头,望了望我,然后又用眼皮垂下去遮住那两只大大的眼睛……

在我最迷茫的时候,我突然发现了你,就在那栋高楼的楼道里。你静静地坐在楼梯上,闭着眼睛,听到有人来了,你抬起头,望了望我,然后又用眼皮垂下去遮住那两只大大的眼睛。

我迟疑的从你身边走过,似曾相识的感觉,我转了几圈还是没找到上选修课的教室。我走回来时,你仍然坐在那里,一动不动。我试着在你身边坐下来,但始终保持一段距离。你看着我,我看着你,好长时间,直到一股凉风吹来,我身上打一个颤,才想起掏出手机故作发短信的样子。而你,也不再看我,低着头,依旧静静地坐着。我偷偷地看你,你却不曾抬一下眼皮。

楼上有人下来了,我有些惊恐,慌忙从你身边站起来,拿着书装作向楼下走去。可是下了两层,我还是不忍离去,听到楼道里又静了下来,我壮着胆子又走了回来,坐在原来的地方。你好像已经知道是我,头也不抬了。

你静静地坐着,我偷偷得看着你。后来就干脆把头放在双膝上,侧着脸盯着。终于,我按耐不住了,轻轻的问你:你叫什么名字?可可?乐乐?……你还是不理不睬,只是在有人走过的时候才稍稍地看一眼,好像就再也没有我的存在。

我又试着向你伸出手,最后竟触到了你的额头。可是你十分顺从的一动不动,任我理着你的额头,默默地接受我轻轻的抚摸。可是我住手了,我不能如此,毕竟我们才刚刚认识。

旁边又有人走过了,我没有动,你也没有动,任凭别人用好奇的眼光看着我们。

但直到最后,你也没有和我说一句话。我仍然不知道你的名字,你的住处;也不知道你为什么会坐在这里,心里在想些什么。我走了,但我永远都不会忘记这个夜晚,在武水主教四楼的楼梯上。希望还能见到你,如果我们果真还有未尽的缘分!

走的时候,我知道你曾偷偷得望了我一眼。

2004.9.21晚    于武水主教四楼楼道

——与一只小狗的奇遇

首发地址:http://beloving.bokee.com/226442.html