常见Datagrid错误(转)
摘要:学习如何避免在使用 ASP.NET Datagrid 控件进行开发时可能发生的一些常见错误(本文包含一些指向英文站点的链接)。 Datagrid 控件是 Microsoft® ASP.NET 中功能最强、用途最广的 Web 控件之一,这一点已经得到了 ASP.NET 权威人士的认同。虽然 Datagrid 控件易于使用,但同样易于给使用者带来麻烦。以下是许多人所犯的一些错误,这些人包括从初学者到富有经验的 .NET 专家。您可以看到许多苦闷的使用者在 ASP.NET 新闻组和论坛就这些错误提出问题。遵循本文概述的相当简单的步骤,可以帮助您避免这些错误,并节约大量的开发
Websharp使用说明之五(转)
对象的查询 Websharp提供了对对象查询的功能,这个功能通过Query接口提供。Query接口的定义可以见:附1:Websharp主要接口定义——Query 可以通过下面的办法来使用Query接口: PersistenceManager pm=PersistenceManagerFactory.Instance().CreatePersistenceManager(pp); Query q=pm.NewQuery("Product"); q.Filter="ProductID='P001'"; q.Open(); EntityData entity=q.QueryData(); dataGrid1.DataSource=entity; q.Close(); pm.Close(); Websharp也提供了直接操纵数据库的数据访问接口——DataAccess,这个接口对
Websharp使用说明之六(转)
业务服务的提供 业务外观层(Business Facade)的目的,是隔离系统功能的提供者和使用者,更明确地说,是隔离业务逻辑的软件的用户界面(可以参见Facade设计模式)。可以使用现有的任何方法来构建构建这个层次,在我们提供的例子中,我们使用了Web Service。Websharp应用系统的配置 1、 缓存的配置 Websharp使用了微软的Cached Application Block来缓存数据,因此,下面的缓存信息必须在应用程序中添加。关于Cached Application Block,可以参见微软的相关文档。 <configuration> <configSections> <section name="Ca
Websharp使用说明之四(转)
数据的存取方式 数据存取的目的,是持久化保存对象。在Websharp中,定义了PersistenceManager接口来实现这个功能。PersistenceManager的定义可以见:附1:Websharp主要接口定义——PersistenceManager 我们可以使用如下的方式来持久化保存一个对象: Product product=new Product (true); ……//处理product PersistenceManager pm = PersistenceManagerFactory.Instance(). CreatePersistenceManager(); pm.PersistNewObject(p); pm.Close(); 代码非常简明和直观,没有一大堆数据库操纵的代码,也不容易发生差错。 也可以通过向Persist
Websharp使用说明之三(转)
可以看出,采用这种方式,Product类既可以代表一个单个的Product对象,也可以包含一个Product对象集合,并且可以通过Next和First方法来遍历。如果要表示一对多的对象结构,我们可以采用如下的方式(表明了一个入库单的结构,这个入库单包含了入库单头和相关明细): public class Form : PersistenceCapable { private EntityData form; private FormDetail formDetail; #region 构造函数 public Form() : this(true) {} public Form(bool AutoInit) { form=EntityPrototypeManager.GetEmptyEntity("Form"); if(AutoInit) for
Websharp使用说明之一(转)
前言 N层的应用软件系统,由于其众多的优点,已经成为典型的软件系统架构,也已经为广大开发人员所熟知。在一个典型的三层应用软件系统中,应用系统通常被划分成以下三个层次:数据库层、应用服务层和用户界面层。如下图所示: 其中,应用服务层集中了系统的业务逻辑的处理,因此,可以说是应用软件系统中的核心部分。软件系统的健壮性、灵活性、可重用性、可升级性和可维护性,在很大程度上取决于应用服务层的设计。因此,如何构建一个良好架构的应用服务层,是应用软件开发者需要着重解决的问题。 为了使应用服务层的设计达到最好的效果
Websharp使用说明之二(转)
一个按照这个标准实现的Product类的示例如下: public class Product : PersistenceCapable { private EntityData product; public Product() : this(true) {} public Product(bool AutoInit) { product=EntityPrototypeManager.GetEmptyEntity("Product"); if(AutoInit) product.NewRecord(); } public string ProductID { get{return product.GetString("ProductID");} set{product["ProductID"]=value;} } public string Name { get{return product.GetString("Name");} set{product["
使用Microsoft.NET Frameworks创建Windows应用程序之三(转)
GDI+ Win Forms 全面利用了 GDI+ 这一 Microsoft 下一代的二维图形系统。Win Forms 中的图形编程模式完全是面向对象的,各式各样的画笔、笔刷、图像和其它图形对象与 .NET Framework 的其它部分一样,遵循了简单易用的指导方针。开发人员目前可以使用相当不错的一些绘图新功能,如 alpha 混色、渐变色、纹理、消除锯齿以及采用除位图外的其它图像格式。与 Windows 2000 操作系统分层和透明的窗口功能配合使用,开发人员能够毫不费力地创建丰富的、更为图形化的 Win32 应用程序。 如果触发了控件的 OnPaint 事件,能够由 PaintEventArgs 访
使用Microsoft.NET Frameworks创建Windows应用程序之二(转)
Win Forms 的主要目的是尽可能地提高定位到 Win32 平台的开发人员的工作效率。无论是图形设备界面 (GDI) 还是窗口状态管理,为 Win32 编程通常都是很困难的。例如,类似 WS_BORDER 或 WS_CAPTION 的一些窗口样式只能在创建窗口时指定或修改。而 WS_VISIBLE 或 WS_CHILD 等其它窗口样式则可以对已创建的窗口进行修改。Win Forms 尽力消除了这些细微的差别,并确保操作过程始终保持一致性。可以随时地、不限次序地对 Win Forms 控件的属性进行设置,总能产生预期效果。如果改动过程需要创建新的 HWND,Win Forms 框架能够自动地、透明地重新
ASP.NET网络编程中常用到的27个函数集之三(转)
22、Math.Max(i,j) 以下是引用片段:取i与j中的最大值 如 int x=Math.Max(5,10); // x将取值 10 加一点吧 23、字串对比...... 加一点吧 23、字串对比一般都用: if(str1==str2){ } , 但还有别的方法: 以下是引用片段:(1)、 string str1; str2 //语法: str1.EndsWith(str2); __检测字串str1是否以字串str2结尾,返回布尔值.如: if(str1.EndsWith(str2)){ Response.Write("字串str1是以"+str2+"结束的"); } (2)、 //语法:str1.Equals(str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上. (3)、
ASP.NET网络编程中常用到的27个函数集之二(转)
16、char.IsWhiteSpce(字串变量,位数)——逻辑型 以下是引用片段:查指定位置是否空字符; 如: string str="中国 人民"; Response.Write(char.IsWhiteSpace(str,2)); //结果为:True, 第一个字符是0位,2是第三个字符。 17、char.IsPunctuation('字符') --逻辑型以下是引用片段:查字符是否是标点符号 如:Response.Write(char.IsPunctuation('A')); //返回:False 18、(int)'字符' 以下是引用片段:把字符转为数字,查代码点,注意是单引号。 如: Response.Write((int)'中'); //结果为中字的代
ASP.NET网络编程中常用到的27个函数集之一(转)
1、DateTime 数字型 以下是引用片段:System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4 取当前日 int 日=currentTime.Day; 1.5 取当前时 int 时=currentTime.Hour; 1.6 取当前分 int 分=currentTime.Minute; 1.7 取当前秒 int 秒=currentTime.Second; 1.8 取当前毫秒 int 毫秒=currentTime.Millisecond; (变量可用中文) 2、Int32.Parse(变量) Int32.Parse("常量")以下
八皇后问题的C#解答(转)
改编自V星[视窗王子]应答程序,如下: using System;class Queen{const int SIZE = 8;//皇后数public static void Main(){int[] Queen = new int [SIZE];//每行皇后的位置int y,x,i,j,d,t=0;y = 0;Queen[0] = -1;while( true ){for (x=Queen[y]+1; x<SIZE; x++){for (i=0;i<y;i++){j = Queen[i];d = y-i;//检查新皇后是否与以前的皇后能相互攻击if ((j==x)||(j==x-d)||(j==x+d))break;}if (i>=y)break;//不攻击}if (x == SIZE) //没有合适的位置{if (0==y){//回朔到了第一行Console.WriteLine("Done");break; //结束}/
对C#泛型中的new()约束的一点思考(转)
对于new()约束,大家可能有一个误解,以为使用了new约束之后,在创建对象时与非泛型的版本是一致的: public class Tester<T> where T:new() { public Tester() { t = new T();//等同于非泛型版本的new? 例如 object o = new object();? } private T t; } 事实上,使用new关键字的作用只是让编译器在泛型实例化之处,检查所绑定的泛型参数是否具有无参构造函数: Tester<SomeType> t = new Tester<SomeType>(); //此处编译器会检查SomeType是否具有无参构造函数。若没有则会有compile error。 而Tester<T&
C# 2.0新特性探究之模拟泛型和内置算法(转)
在C#2.0中,匿名方法、IEnumerable接口和匿名方法的合作,使很多的编程任务变得非常的简单,而且写出来的程序非常的优美。 比如,我们可以写出如下的代码: List<Book> thelib = Library.getbooks(); List<Book> found = thelib.FindAll(delegate(Book curbook) { if (curbook.isbn.StartsWith("...")) return true; return false; }); foreach (Book b in found) Console.WriteLine(b.isbn); 这段程序非常简单的展示给我们需要查找的信息,代码也非常的直接易懂。内置的数据结构给了我们强大的算法
C#排序算法大全-插入排序(转)
插入排序 插入排序算法。对想提高C#语言编程能力的朋友,我们可以互相探讨一下。如:下面的程序,并没有实现多态,来,帮它实现一下。 using System; namespace InsertionSorter { public class InsertionSorter { public void Sort(int [] list) { for(int i=1;i<list.Length;i++) { int t=list[i]; int j=i; while((j>0)&&(list[j-1]>t)) { list[j]=list[j-1]; --j; } list[j]=t; } } } public class MainClass { public static void Main() { int[] iArrary=new int[]{1,13,3,6,10,55,98,2,87,12,3
C#排序算法大全-希尔排序(转)
希尔排序 希尔排序是将组分段,进行插入排序. 对想提高C#语言编程能力的朋友,我们可以互相探讨一下。如:下面的程序,并没有实现多态,来,帮它实现一下。 using System; namespace ShellSorter { public class ShellSorter { public void Sort(int [] list) { int inc; for(inc=1;inc<=list.Length/9;inc=3*inc+1); for(;inc>0;inc/=3) { for(int i=inc+1;i<=list.Length;i+=inc) { int t=list[i-1]; int j=i; while((j>inc)&&(list[j-inc-1]>t)) { list[j-1]=list[j-inc-1]; j-=inc; } li
C#排序算法大全-冒泡排序(转)
冒泡排序 本人用了C#开发出冒泡排序算法。希望能为C#语言的学习者带来一些益处。不要忘了,学语言要花大力气学数据结构和算法。 using System; namespace BubbleSorter { public class BubbleSorter { public void Sort(int [] list) { int i,j,temp; bool done=false; j=1; while((j<list.Length)&&(!done)) { done=true; for(i=0;i<list.Length-j;i++) { if(list[i]>list[i+1]) { done=false; temp=list[i]; list[i]=list[i+1]; list[i+1]=temp; } } j++; } } } public class MainClass { publ
C#排序算法大全-选择排序(转)
选择排序 本人用了C#开发出选择排序算法。希望能为C#语言的学习者带来一些益处。不要忘了,学语言要花大力气学数据结构和算法。 using System; namespace SelectionSorter { public class SelectionSorter { private int min; public void Sort(int [] list) { for(int i=0;i<list.Length-1;i++) { min=i; for(int j=i+1;j<list.Length;j++) { if(list[j]<list[min]) min=j; } int t=list[min]; list[min]=list[i]; list[i]=t; } } } public class MainClass { public static void Main() { int[] iArrary=ne
数据结构与算法(C#实现)系列---演示篇(二)(转)
public static void ShowGeneralTree_travel() { IEnumerator tmpIEnum; Tree.TraversalType travelType=0; //---------------------提示---------------------------- Console.WriteLine("please choose a the No. of a item you want to travel:"); Console.WriteLine("1.BreadthFirst----- 广度遍历"); Console.WriteLine("2.PreDepthFirst-----前序遍历"); Console.WriteLine("3.InDepthFi