博文
动态创建控件时,Page.Load事件之后也需要恢复ViewState(2010-09-15 21:52:00)
摘要:我曾经发过一个帖子问这样的问题:
在下面的代码中,我想实现的是:
(1) 第一次打开网页,TextBox中的文本为"Good Morning."
(2) 单击Button,形成Postback,然后更改TextBox的文本为"Good Afternoon"
可是不管怎样,TextBox的文本总是 "Good Morning.", 请各位帮我看看是什么原因。
(我不想捕捉Button的Onclick事件)
C# code
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Button button1 = new Button();
button1.Text = "Click";
button1.ID = "button1";
TextBox textBox1 = new TextBox();
te......
C# 生成随机数(2010-09-14 15:47:00)
摘要:使用随机数只需要两步:
(1) 创建随机种子,默认方式是以当前时间作为种子;Random r = new Random()
(2) 取随机数;int i = r.Next(0, 3) //注意这里是取 [0, 3)的整数,但是取不到3
Random ranobj = new Random();
foreach (SangoWujiang w in wujiangs)
{
int i = (int)w.Force - 1 + ranobj.Next(0, 3);
if (i < 0)
{
w.Force = 0;
&nbs......
实现IFormattable接口的例子(2010-09-08 20:26:00)
摘要:参见C#高级编程(第4版)第8章 字符串和正则表达式
class Program
{
static void Main(string[] args)
{
Vector v1 = new Vector(1, 32, 5);
Vector v2 = new Vector(845.4, 54.3, -7.8);
Console.WriteLine("\nIn IJK format, \nv1 is {0,30:IJK}\nv2 is {1,30:IJK}", v1, v2);
Console.WriteLine("\nIn default format, \nv1 is {0,30}\nv2 is {1,30}", v1, v2);
Console.WriteLine("\nIn VE format, \nv1 is {0,30:VE}\nv2 is {1,30:VE}", v1, v2);
}
}
class Vector : IForma......
什么是装箱和拆箱(2010-09-08 20:25:00)
摘要:转自 http://blog.csdn.net/yuyu622/archive/2007/09/07/1776604.aspx
装箱(boxing)和拆箱(unboxing)是.NET提出得新概念!
.NET的所有类型都是由基类System.Object继承过来的,包括最常用的基础类型:int, byte, short,bool等等,就是说所有的事物都是对象。如果申明这些类型得时候都在堆(HEAP)中分配内存,会造成极低的效率!
.NET如何解决这个问题得了?正是通过将类型分成值型(value)和引用型(referencetype),C#中定义的值类型包括原类型(Sbyte、Byte、Short、Ushort、Int、Uint、Long、Ulong、Char、Float、Double、Bool、Decimal)、枚举(enum)、结构(struct),引用类型包括:类、数组、接口、委托、字符串等。
值型就是在栈中分配内存,在申明的同时就初始化,以确保数据不为NULL;
引用型是在堆中分配内存,初始化为null,引用型是需要GARBAGE COLLECTION来回收内存的,值型不用,超出了作用范围,系统就会自动释放!
下面就来说装箱和拆箱的定义!
装箱就是隐式的将一个值型转换为引用型对象。比如:
int i=0;
Syste.Object obj=i;
这个过程就是装箱!就是将i装箱!
拆箱就是将一个引用型对象转换成任意值型!比如:
int i=0;
System.Object obj=i;
int j=(int)obj;
这个过程前2句是将i装箱,后一句是将obj拆箱!
再写个代码,看看进行了几次装拆箱!
int i=0;
System.Object obj=i;
Console.WriteLine(i+","+(int)obj);
其中共发生了3次装箱和一次拆箱!^_^,看出来了吧?!
第一次是将i装箱,第2次是输出的时候将i转换成string类型,而string类型为引用类型,即又是装箱,第三次装箱就是(int)obj的转换成string类型,装箱!拆箱就是(int)obj,将obj拆箱!!
再举一个例子,
public enum TimeOfDay
{
Mo......
ODBC浅谈(2010-03-22 04:52:00)
摘要:
《SQL Server 2005数据库基础及应用技术教程与实训》周奇
ODBC(Open Database Connectivity)是一种数据库访问标准,通过一组标准的函数调用(API)来实现数据库访问。ODBC API是独立于数据库的,表面上它是由一组函数调用组成,但是ODBC的核心是SQL语句。ODBC函数的主要功能是将SQL语句发送到目标数据库中,然后处理这些SQL语句产生的结果。
1. ODBC组件
ODBC使用的分层体系结构包括ODBC应用程序、驱动程序管理器、ODBC驱动程序和数据源。
(1) ODBC应用程序:该程序与ODBC驱动程序管理器(ODBC32.DLL)进行动态或静态地连接,且调用由驱动程序管理器提供的ODBC API函数。
(2) ODBC驱动程序管理器:因为ODBC应用程序不能够直接调用ODBC驱动程序,只可以调用在ODBC驱动程序管理器中的函数,而ODBC驱动程序管理器可以调用相应的ODBC驱动程序。这样就保证ODBC函数无论是连接到SQL Server数据库,还是连接到其他某个数据库平台,总是按照同一种方式进行调用。驱动程序管理器负责把相应的ODBC驱动程序加载到内存中,并将随后的请求送给正确的ODBC驱动程序。
(3) ODBC驱动程序:ODBC驱动程序负责把SQL请求送到关系数据库管理系统(RDBMS)中,且把发送结果返回给ODBC驱动程序管理器,然后由驱动程序管理器把这些请求传送给客户端应用程序。每一种兼容ODBC的数据库都有其各自的ODBC驱动程序,且该驱动程序只能与该数据库本身进行通信,不能用它访问其他的数据库。譬如,SQL Server ODBC驱动程序只能访问SQL Server数据库,不能用来访问Oracle数据库,而Oracle ODBC驱动程序只能访问Oracle数据库,不能用来访问SQL Server数据库。
(4)数据源:数据源就是要访问的数据库。
2. 配置ODBC数据源
在使用ODBC之前,必须安装一个ODBC驱......
SQL中的Exists与In(2010-03-15 00:15:00)
摘要:http://hi.baidu.com/delphi_relive/blog/item/d7c0034a49c4932208f7ef21.html
select * from 表A where exists(select * from 表B where 表B.id=表A.id) 这句相当于 select * from 表A where id in (select id from 表B)
exits适合内小外大的查询,in适合内大外小的查询......
SQL Server 2005的版本(2010-03-14 05:14:00)
摘要:《SQL Sever 2005 数据库基础及应用技术教程与实训 》 周奇
SQL Server 2005的版本:
1. SQL Server 2005 Enterprise Edition 企业版(32位和64位)
适用于超大型企业。Enterprise Edition 是最全面的SQL Server版本,是超大型企业的理想选择,能够满足最复杂的要求。该版本还推出了一种适用于32位或64位平台的120天Evaluation Edition。
2. SQL Server 2005 Standard Edition标准版(32位和64位)
适合中小型企业。Standard Edition是需要全面的数据管理和分析平台的中小型企业的理想选择。
3. SQL Server 2005 Workgroup Edition工作组版(仅适用于32位)
适用于那些在大小和用户数量上没有限制的数据库的小型企业。Workgroup Edition可以做前端Web服务器,也可以用于部门或分支机构的运营,它包括SQL Server产品系列的核心数据库功能,并且可以轻松地升级至Standard Edition或Enterprise Edition。 Workgroup Edition是理想的入门级数据库,具有可靠、功能强大且易于管理的特点。
4. SQL Server 2005 Developer Edition开发版(32位和64位)
Developer Edition使开发人员可以在SQL Server上生成任何类型的应用程序,它包括SQL Server 2005 Enterprise Edition的所有功能,但又许可限制,只能适用于开发和测试系统,而不能用作生产服务器。Developer Edition是独立软件供应商(ISV)、咨询人员、系统集成商、解决方案供应商以及创建和测试应用程序的企业开发人员的理想选择。Develop......
使用sp_help来查看表的结构(2010-03-14 05:09:00)
摘要:我们需要了解表的数据结构,比如某一列的数据类型的时候,可以使用表设计器来查看,但是有的时候表设计器没有办法使用,比如你想了解一个视图中的某一列的数据类型的时候。这时候,你就只能使用系统存储过程sp_help来查看表的结构了。
语法格式: EXEC sp_help [table name]
下图使用AdventureWorks的视图为例:
需要注意一下syntax: exec sp_help '[Popr.ProblemDetail]'
......
SQL 2005 创建约束(2010-03-14 03:57:00)
摘要:参见《SQL Sever 2005 数据库基础及应用技术教程与实训》 周奇
SQL Server中有五种约束类型,分别是CHECK约束、DEFAULT约束、PRIMARY KEY约束、FOREIGN KEY约束和UNIQUE约束。
1. CHECK约束:
CHECK约束用于限制输入一列或多列的值的范围,通过逻辑表达式来判断数据的有效性。一个列的输入内容必须满足CHECK约束的条件,否则数据无法正常输入。
下面我们要对以下的表添加CHECK约束,
Name
Sex
Adams
M
Berry
F
Hebe
f
Jack
M
以上的约束可以限制Sex列的取值只能为’M’或者’F’。如果你插入新行,或更改某一行不符合该约束,就会报错。
2. DEFAULT约束
若在表中某列定义了DEFAULT约束,用户在插入新的数据行时,如果该列没有指定数据,那么系统将默认值赋给该列,当然该默认值也可以是空值(NULL)。
创建DEFAULT约束需要在表设计器中,填写列属性的”默认值”.
3. PRIMARY KEY约束
在表中常有一列或多列的组合,其值能唯一标识表中的每一行。这样的一列或多列成为表的主键(Primary Key)。一个表只能有一个主键,而且主键约束中的列不能为空值。
4. FOREIGN KEY约束
外键(Foreign Key)是用于建立和加强两个表(主表与从表)的一列或多列数据之间的连接的。创建约束的顺序是先定义主表的主键,再对从表定义外键约束。
先对Country表设置主键,然后对Author表创建关系。
&......
搭建虚拟机Windows 2003 + SQL Server 2005(2010-03-14 00:52:00)
摘要:如何使用VMware Workstatetion搭建虚拟机Windows Server 2003 + SQL Server 2005
(1) 安装VMware Workstation;
(2) 安装好VMware Workstation之后,创建新的虚拟机(create a new virtual machine);
(3) 在出现”Install From”对话框时,选择你的Windows 2003的安装文件;
(4) 在安装好Windows 2003虚拟机之后,需要该打的补丁先打好。然后你需要安装.Net Framework 2.0和IIS; 注意安装IIS需要:控制面板à添加或删除程序à添加/删除Windows组件;
(5) 最后安装SQL Server 2005.......
