博文

ASP.NET 表达式概述 (2007-01-31 11:16:00)

摘要:ASP.NET 表达式是基于运行时计算的信息设置控件属性的一种声明性方式。例如,可以使用表达式将属性设置为基于连接字符串的值、应用程序设置以及应用程序的配置和资源文件中所包含的其他值。当分析页的声明性元素时,在运行时计算表达式,并且表达式所表示的值被表达式语法替换。(因为在分析时计算表达式,所以不能在代码中动态创建表达式。) 表达式的一个常见用途是在数据源控件中引用连接字符串。您可以使用表达式来指定连接字符串在配置文件中的位置,而不用将连接字符串作为属性值直接包括在数据源控件中。运行时,将通过从配置文件读取连接字符串来解析表达式。对于需要在运行时解析而不是设置为静态值的任何属性设置,都可以使用表达式。 使用表达式有助于您通过以下方式维护应用程序: 以声明的方式引用动态信息可以减少应用程序中的代码。这将避免编写在运行时设置属性值的代码。 可以在多个控件中重用相同的设置。例如,如果您将某个连接字符串存储在 Web.config 文件中,然后使用表达式在页中引用该连接字符串,那么,您可以在一个中心位置更改该连接字符串,而不必在每个使用该连接字符串的控件中进行更改。 您可以将诸如连接字符串凭据的敏感数据(或其他应用程序数据)存储在 Web.config 文件中,然后对数据进行加密。 在可视化设计器(如 Visual Studio)中工作时,可以利用设计器中的工具来帮助您生成表达式。 表达式也是可扩展的,因此您可以定义自己的表达式语法。您可以创建调用自定义表达式处理程序的表达式,以使用自定义逻辑返回值。 基本语法 ASP.NET 表达式的基本语法如下:   复制代码 <%$ expressionPrefix: expressionValue %> 美元符号 ($) 通知 ASP.NET 它的后面是一个表达式。表达式前缀定义了表达式的类型,如 AppSettings、ConnectionStrings 或 Resources。冒号 (:) 后面的部分是 ASP.NET 将解析的实际表达式值。 表达式语法不受任何特定 .NET 语言的约束。无论您在 ASP.NET 页中使用 Visual Basic、C# 还是其他任何编程语言,都可以使用相同的表达式语法。 连接字符串 表达式的一......

阅读全文(2972) | 评论:0

数据绑定表达式语法 (2007-01-31 11:15:00)

摘要:当在页上调用 DataBind 方法时,数据绑定表达式创建服务器控件属性和数据源之间的绑定。可以将数据绑定表达式包含在服务器控件开始标记中属性/值对的值一侧,或页中的任何位置。 <tagprefix:tagname property="<%# data-binding expression %>" runat="server" /> - or - literal text <%# data-binding expression %> 参数 property 为其声明数据绑定的控件属性。 data-binding expression 符合备注部分中概述的要求的任意表达式。 备注 所有数据绑定表达式都必须包含在 <%# 和 %> 字符之间。 ASP.NET 支持分层数据绑定模型,该模型创建服务器控件属性和数据源之间的绑定。几乎任何服务器控件属性都可以绑定到任何公共字段或属性,这些公共字段或属性位于包含页或服务器控件的直接命名容器上。 数据绑定表达式使用 Eval 和 Bind 方法将数据绑定到控件,并将更改提交回数据库。Eval 方法是静态(只读)方法,该方法采用数据字段的值作为参数并将其作为字符串返回。Bind 方法支持读/写功能,可以检索数据绑定控件的值并将任何更改提交回数据库。 可以使用 XPath 和 XPathSelect 方法以及 XPathBinder 类从 XmlDataSource 控件绑定到 XML 数据。有关更多信息,请参见 XmlDataSource Web 服务器控件。 示例 下面的代码示例演示如何在 ASP.NET 服务器控件中根据属性进行数据绑定。当用户从 DropDownList Web 服务器控件选择某个状态时,Label Web 服务器控件将根据列表中的选定项进行绑定并显示选中的状态。 C#  复制代码 <html> <head> <script language="C#" runat="server"> void SubmitBtn_Click(Object sender, EventA......

阅读全文(3119) | 评论:0

代码呈现块 (2007-01-31 11:15:00)

摘要:代码呈现块定义当呈现页时执行的内联代码或内联表达式。存在两种样式的代码呈现块:内联代码和内联表达式。使用内联代码可以定义独立的行或代码块。将内联表达式用作调用 Write 方法的快捷方式。 <% inline code %> <%=inline expression %> 备注 如果您尝试将字符序列 %> 包含在代码呈现块中的任意位置,则会出现编译错误。该序列只能用于结束代码呈现块。例如,下面的代码将导致错误: C#  复制代码 <%@ page language="C#" %> <% Response.Write(" %>"); %> Visual Basic  复制代码 <%@ page language="VB" %> <% Response.Write("%>) %> 若要更正该错误,可以构建包含字符序列的字符串,如下面的代码示例所示: C#  复制代码 <%@ page language="C#" %> <% String s = "%" + ">"; Response.Write(s); %> Visual Basic  复制代码 <%@ page language="VB" %> <% Dim s as String s = "%" & ">" Response.Write(s) %> 注意 与 Active Server Pages (ASP) 不同,在 ASP.NET 中,声明代码呈现块(在 <% 与 %> 标记之间)中的函数或子例程是无效的。 示例 下面的代码示例演示如何使用代码呈现块以多种不同的字号显示相同的 HTML 文本。 C#  复制代码 &......

阅读全文(2294) | 评论:0

ASP.NET 网页中的嵌入式代码块(2007-01-31 11:15:00)

摘要:将代码添加到 ASP.NET 网页中的默认模型要么创建一个代码隐藏类文件(代码隐藏页),要么将页的代码写到具有 runat="server" 属性的 script 块中(单文件页)。编写的代码通常会与页上的控件进行交互。例如,通过从代码中设置控件的 Text(或其他)属性,可以在页上显示信息。 另一种可能是使用嵌入式代码块将代码直接嵌入到页中。 嵌入式代码块 嵌入式代码块是在呈现页面的过程中执行的服务器代码。块中的代码可以执行编程语句,并调用当前页类中的函数。 下面的代码示例演示包含嵌入式代码块的 ASP.NET 页,该代码块显示循环结果。 Visual Basic  复制代码 <%@ Page Language="VB" %> <html> <body> <form id="form1" runat="server"> <% For i As Integer = 0 To 5 %> <% Response.Write("<br>" & i.ToString())%> <% Next%> </form> </body> </html> C#  复制代码 <%@ Page Language="C#" %> <html> <body> <form id="form1" runat="server"> <% for(int i = 0; i < 6; i++) %> <% { Response.Write("<br>" + i.ToString()); }%> </form> </body> </html> 下面的代码示例演示一个嵌入式代码块,该代码块显示 span 元素中的公共 GetTime() 函数的值。在嵌入式代码块中,语法 <% = expression %> 用于......

阅读全文(3347) | 评论:0

ASP.NET 网站路径(2007-01-31 11:13:00)

摘要:使用网站中的资源时,通常必须指定资源的路径。例如,您可以使用 URL 路径引用页面中的图像文件或网站中其他位置处的页面的 URL。同样,Web 应用程序中的代码可以使用基于服务器的文件的物理文件路径对文件进行读写操作。ASP.NET 提供用于引用资源并确定应用程序中的页面或其他资源的路径的方法。 指定资源的路径 许多情况下,页面中的元素或控件必须引用外部资源,如文件。ASP.NET 允许您通过各种方法引用外部资源。所选方法取决于使用客户端元素还是服务器控件。 客户端元素 元素(不是页面中的服务器控件,而是客户端元素)以原样传递给浏览器。因此,从客户端元素中引用资源时,应根据 HTML 中 URL 的标准规则构造路径。可以使用完全限定(绝对)URL 路径,也可以使用各种类型的相对路径。例如,如果页面包含一个 img 标记,则可以使用以下路径之一设置其 src 属性: 绝对 URL 路径:   复制代码 <img src="http://www.contoso.com/MyApplication/Images/SampleImage.jpg" /> 如果引用其他位置(如外部网站)中的资源,则绝对 URL 路径非常有用。 站点根目录相对路径,根据站点(不是应用程序)根目录进行解析。此示例路径假定 Images 文件夹存在于网站根目录下:   复制代码 <img src="/Images/SampleImage.jpg" /> 如果您的网站为 http://www.contoso.com,则路径将解析为以下形式:   复制代码 http://www.contoso.com/Images/SampleImage.jpg 如果将跨应用程序的资源(如图像或客户端脚本文件)保留在网站根目录下的文件夹中,则站点根目录相对路径非常有用。 根据当前页面路径解析的相对路径:   复制代码 <img src="Images/SampleImage.jpg" /> 解析为当前页面路径对等的相对路径。   复制代码 <img s......

阅读全文(5294) | 评论:0

如何使用SQL Server 2000全文检索 (2007-01-30 10:30:00)

摘要:SQL Server 2000全文检索 一、如何在SQL中启用全文检索功能
1、证全文检索服务是否安装
通过储存过程FULLTEXTSERVICEPROPERTY(返回有关全文服务级别属性的信息)来验证搜索服务(全文组件)是否安装。如Select fulltextserviceproperty (‘IsFullTextInstalled’):返回1表示已安装全文组件;返回0表示未安装全文组件;返回Null表示输入无效或发生错误。
2、启动全文检索服务(MircoSoft Search)
3、打开数据库全文索引的支持
为全文索引启用数据库:
Use Northwind
Exec sp_fulltext_database  ‘enable’
从数据库中删除所有目录:
Use Northwind
Exec sp_fulltext_database ‘disable’
二、建立全文目录
1、创建全文目录
Use Northwind
Exec sp_fulltext_catalog 'ft_ Catalog ', 'create'
2、重建全文目录
Use Northwind
Exec sp_fulltext_catalog 'ft_ Catalog ', ' rebulid'
3、启动全文目录的填充
Use Northwind
Exec sp_fulltext_catalog 'ft_ Catalog ', 'start_full'
4、停止全文目录的填充
Use Northwind
Exec sp_fulltext_catalog 'ft_ Catalog ', 'stop'
5、删除全文目录
Use Northwind
  PK_Products
Exec sp_fulltext_catalog 'ft_ Catalog ', 'drop'
三、为表建立全文索引数据元
1、建立的唯一索引
Use Northwind
Exec sp_fulltext_table 'Products','create', 'ft_ Catalog', ' PK_Products '......

阅读全文(3221) | 评论:0

 如何在SQL中启用全文检索功能?(2007-01-30 10:18:00)

摘要:如何在SQL中启用全文检索功能? --------------------------------------------------------------------------------
 
全文索引的一个例子,在查询分析器中使用:
use pubs
go
--打开数据库全文索引的支持
execute sp_fulltext_database 'enable'
go
--建立全文目录ft_titles
execute sp_fulltext_catalog 'ft_titles', 'create'
go
--为titles表建立全文索引数据元,UPKCL_titleidind是主键所建立的唯一索引,可由sp_help titles得知
execute sp_fulltext_table 'titles','create', 'ft_titles', 'UPKCL_titleidind'
go
--设置全文索引列名
exec sp_fulltext_column 'titles', 'title', 'add'
go
exec sp_fulltext_column 'titles', 'notes', 'add'
go
--建立全文索引
exec sp_fulltext_table 'titles', 'activate'
go
--填充全文索引目录
exec sp_fulltext_catalog 'ft_titles', 'start_full'
go
--使用contains和freetext
select title, notes from titles
where contains(title, '"computer Cooking"')
go
select title, notes from titles
where freetext(title, 'computer Cooking')
go
select title, notes from titles
where freetext(title, '"computer Cooking"'......

阅读全文(2060) | 评论:0

SQL Server2000全文索引心得! (2007-01-30 09:59:00)

摘要:试想,如果你开了家药铺,第一年在纸上写下1,2,3,4,5号抽屉放黄胆.9,52,7号抽屉中放灵芝,47,25,36,87号抽屉中放天麻............有一天你急要找天麻,于是,47,25,36,87号抽屉逐个找,费时,费力. 第二年,你老婆在纸上写下:黄胆:1,2,3,4,5号抽屉.天麻:9,52,7号抽屉.灵芝:47,25,36,87号抽屉.有一天,她急要找灵芝,但,没用几分钟,就找到了! 那么,第一种情况是什么呢?对!就是我们经常用到的;LIKE索引!第二种情况就是本文要向你介绍的:全文索引! LIKE索引:LIKE谓词用于指出一个字符串是否与指定的字符中相匹配. 全文索引:就是事先做好相关的索引,表示哪个主题词可以在哪些记录里找到,甚至事先计算好RANK,检索时可以把相关度高的先列出来,这可以大大提高检索的速度。 那么,在SQL 2K中怎么建全文索引呢? 例子: 1、 打开NorthWind数据库,右键Products表,选择“全文索引表”,“在表上定义全文索引”,为其创建全文目录。在“全文索引向导”中,选择你需要全文查询条件的列(可以是文本或图像),我们选择Productname和QuantityPerUnit列。然后下一步,输入一个新的目录p,点击下一步。在填充调度一项里,我们暂时不建立填充调度。接着“下一步”,全成全文索引向导。完成后,我们可以看到在“全文目录”里,多了一个全文目录p。右键p属性,可以看到其状态、表、调度情况。   2、  右键全文目录p, “启动完全填充”,系统会出现“全文目录填充成功启动”。   3、  这时,我们可以使用Transact-SQL进行全文检索了,我们使用CONTAINS、FREETEXT等谓词。如:   检索ProductName中,即包含d又包含e的所有列 SELECT * FROM Products WHERE CONTAINS(ProductName, '"d*" and "e*" ') 结果如下:......

阅读全文(2078) | 评论:0

SQL Server全文检索简介(2007-01-30 09:59:00)

摘要:全文索引和全文检索是sql server 7.0的新增功能,它能够对数据中的字符类型列(如varchar、text等类型列)进行索引,并通过索引实现全文搜索查询。sql server常规索引与全文检索相比,二者的区别如下:  

  常规索引 全文索引

  使用create index或约束定义创建 使用全文索引存储过程创建和删除

  通过删除或执行drop index语句删除

  

  当插入、修改或删除数据时,sql server 只能通过任务调度或执行存储过

  能够自动更新常规索引内容 程来填充全文索引

  

  每个表可以建立多个常规索引 每个表只能有一个全文索引

  索引不能分组 同一个数据库中的多个全文索引可

   以组织为一个全文目录

  常规索引存储在数据库文件中 全文索引存储在文件系统中

    

  为了支持全文索引操作,sql server 7.0新增了一些新存储过程和transact-sql语句,使用这些存储过程创建全文索引的

  具本步骤为(括号内为每步所调用的存储过程名称):

  

  (1)启动数据库的全文处理功能(sp_fulltext_datebase);

  (2)建立全文目录(sp_fulltext_catalog);

  (3)在全文目录中注册需要全文索引的表(sp_fulltext_table);

  (4)指出表中需要全文检索的列名(sp_fulltext_column)

  (5)为表创建全文索引(sp_fulltext_table);

  (6)填充全文索引(sp_fulltext_catalog)。

    

  例:

  use pubs

  go

  exec sp_fulltext_database 'enable'

  --为titles表建立全文索引数据元,其中create为建立,a......

阅读全文(2433) | 评论:0

C#编程技巧集之--让窗体飘动起来--C#中Timer组件用法(收藏)(2007-01-29 09:55:00)

摘要:Timer组件是也是一个WinForm组件了,和其他的WinForm组件的最大区别是:Timer组件是不可见的,而其他大部分的组件都是都是可见的,可以设计的。Timer组件也被封装在名称空间System.Windows.Forms中,其主要作用是当Timer组件启动后,每隔一个固定时间段,触发相同的事件。Timer组件在程序设计中是一个比较常用的组件,虽然属性、事件都很少,但在有些地方使用它会产生意想不到的效果。

  本文介绍的程序,是用Visual C#做的一个窗体飘动的程序,这其中就大量的使用了Timer组件。下面就来介绍一下,这个程序的设计和运行的环境。

  一. 本文程序设计和运行的软件环境:

  (1).微软公司视窗2000服务器版

  (2)..Net FrameWork SDK Beta 2

  二. 程序设计的思路以及关键步骤的解决方法:

  其实要使得程序的窗体飘动起来,其实思路是比较简单的。首先是当加载窗体的时候,给窗体设定一个显示的初始位置。然后通过在窗体中定义的二个Timer组件,其中一个叫Timer1,其作用是控制窗体从左往右飘动(当然如果你愿意,你也可以改为从上往下飘动,或者其他的飘动方式。),另外一个Timer2是控制窗体从右往左飘动(同样你也可以改为其他飘动方式)。当然这二个Timer组件不能同时启动,在本文的程序中,是先设定Timer1组件启动的,当此Timer1启动后,每隔0.01秒,都会在触发的事件中给窗体的左上角的横坐标都加上"1",这时我们看到的结果是窗体从左往右不断移动,当移动到一定的位置后,Timer1停止。Timer2启动,每隔0.01秒,在触发定义的事件中给窗体的左上角的横坐标都减去"1",这时我们看到的结果是窗体从右往左不断移动。当移动到一定位置后,Timer1启动,Timer2停止,如此反覆,这样窗体也就飘动起来了。要实现上述思路,必须解决好以下问题。

  (1).如何设定窗体的初始位置:

  设定窗体的初始位置,是在事件Form1_Load()中进行的。此事件是当窗体加载的时候触发的。Form有一个DesktopLocation属性,这个属性是设定窗体的左上角的二维位置。在程序中是通过Point结构变......

阅读全文(1706) | 评论:0