编程技巧 - 文章列表

  • ADO.NET 2.0:如何排除错误信息

    图1图2\n图表 1 与 2 所示的程序示范如何取得数据命令所传回的两个结果集,并将这两个结果集之所有数据记录之所有字段的内容显示于窗体上的 TextBox 控件中。\n本范例将两道 SELECT 表达式指派给 SqlCommand 对象的 CommandText 属性,因此在使用 ExecuteReader 方法执行数据命令后会传回两个结果集。我们藉由调用 SqlDataReader 对象的 NextResult 方法来顺序处理各个结果集,而在处理个别的结果集时,则调用 SqlDataReader 对象的 GetName 方法来取得字段名称(亦即 myReader.GetName(i)),并

  • ASP.NET 2.0编程小技巧两则

    1、利用app_offline.htm\n  在asp.net 2.0中,如果你要COPY站点,进行站点维护,部署,和进行大量修改,有可能要停掉你的WEB应用程序了,而以一个友好的方式提示给用户,比如什么“本网站正在更新”等等的信息,在ASP.NET 2.0中,你可以建立一个叫app_offline.htm(大小写没关系)的静态HTM页面文件,其中修改成你要临时显示的内容,将其放在你的应用的根目录下。这样,任何外部的请求的话,都会马上被转移到该页面了。这个时候,你的网站依然可以被访问,只不过你的应用不能被访问了。呵呵,那样的话,就可以避免很多更新网站是的麻烦事了。\n  当然,另一个方法,也可

  • 支持正则表达式的UrlMapping(ASP.NET2.0)

    猛然发现ASP.NET 2.0本身就提供了对UrlMapping的天然支持--web.config文件中的<urlMappings>节,感叹现在写程序真的不是什么技术活了。\n<?xml version=”1.0″?><configuration> <system.web> <urlMappings> <add url=”~/2006/07″ mappedUrl=”~/Month.aspx?year=2006&m

  • ASP.NET 2.0服务器控件之实现验证控件

    为了更好的创建交互式Web应用程序,加强应用程序安全性(例如,防止脚本入侵等),开发人员应该对用户输入的部分提供验证功能。过去,输入验证功能基本由自行编写的客户端脚本来完成这种实现方法既繁琐,又容易出现错误。随着技术的发展,ASP.NET技术通过提供一系列验证控件来克服这些缺点,例如,RequiredFieldValidator、CompareValidator、RangeValidator等。使用这些验证控件,开发人员可以向Web页面添加输入验证功能,例如定义验证规则、定义向用户显示的错误信息内容等。通常情况下,ASP.NET提供的验证控件可以满足大多数Web应用的需要,然而,在某些情况下,

  • .NET 2.0 中的自定义配置处理

    引言  现代软件开发中,各种技术、技巧越来越依赖配置,譬如客户端对用户体验的个性化设置、系统的各种运行时参数设置、可插拔的插件机制、基于配置的IoC架构模式等。配置方式也从最初的二进制存储格式逐步过度到INI文本格式直至今时所广泛使用的Xml格式。使用Xml格式进行配置,大大提高了对设置数据的表现能力,但是在 .NET 1.x 中对Xml配置的操控还有诸多不便,尤其是对Xml配置的存储同步机制很不完善,而从 .NET 2.0 开始,框架提供了更丰富和易于操控使用的机制。   .NET 中的配置文件(Xml)必须以“<configuration>”为根节点,配置文件分为两大部分:配置声明区和数据

  • ASP.NET2.0登陆控件的使用(常见的三种方法)

    这里以CreateUserWizard 为例说明注册用户向导的常规使用1)使用默认的向导控件功能 默认的注册向导的使用向导的简单,简单到如下只要一句话代码的地步: <asp:CreateUserWizard ID=”CreateUserWizardControl” runat=”server”/>无需要额外的代码就能够完成用户的注册,将注册的信息写入ASPNETDB.MDF数据库。\n2)使用默认ID 一些不安分的用户开始不满足上面的功能:虽然简单,但是太死板,没有灵活性,例如在用户名,我想要验证用户名必须是字母或者是数字,此时

  • 在Visual Studio 2005和ASP.NET 2.0中使用强类型数据存取

    “Never put off until run time what can be done at compile time.”David Gries, Compiler Construction for Digital Computers\nIntroduction\n  作为程序员,我们在学习一些新技术的时候,范例有时候会是我们最大的敌人。指南通常被设计成简单易懂,但同时里面的懒惰、无效率的甚至是危险的代码编写会增多。像这种情况最普遍存在的就是在ADO.NET的范例中了。在这篇文章中,我们将看一下数据库中的强类型对象有什么意义,会让你在你的程序中这样做,尽管缺乏范例

  • 在ExcuteReader中使用输出参数的问题

    今天一个查询需要通过 ExcuteReader 返回结果集,同时又想输出参数,刚开始的时候一直得不到输出参数的值,以为存储过程出错,但是在查询分析器里面测试是正确的,而且输出参数确实已经赋值。更加让人百思不得其解的是,对出输出强制类型转换丢出异常之后,确又可以得到了,难道是ado.net 的bug,想象页不可能啊,这么常用的API,不可能出这种错吧,我的代码类似一下场景:try { using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) {

  • 漫谈Visual C#的组件设计方法

    Properties  在C#中为类预定义属性是件再简单不过的事,见程序1。  程序1\nusing System;namespace PropertiesDemo{ public class MyData {  …………… } public class Class1 {  private MyData _data;  public MyData Data  {   get { return _data; }  }  public Class1()  {   _data = new MyData();  } }}

  • 如何解决Remoting无法传输存储过程参数的问题

    在项目的开发中使用Remoting,并且所有的数据请求服务都是通过Remoting完成的,所以自然就在其中到了传递参数的存储过程,在业务逻辑中把参数构建好后传递到Remoting服务端,在取出存储过程的参数时报错,具体错误不记得了,自己尝试了各种方法也不行,上网资讯也没有结果,最后变通了一下,问题解决了,例子如下:\n以下部分为客户调用端1//先声明参数 2 private const string PARAM_GUID = “@GUID”; 3 private const string PARAM_VGA_TREEGUID = &#8220