摘要: XML全称EXtensible Markup Language,翻译为可扩展置标语言,可扩展标记语言或可 延伸标示语言,是一种置标语言。置标指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从标准通用置标语言(SGML)中简化修改出来的。 一个符合XML 1.0和XML规范的命名空间的文档,可能有多种语法结构组成,比如:xml声明、命名空间声明、元素、属性、处理指令、注释和文本。阅读全文
posted @ 2009-05-04 10:24 麦香老农 阅读(201) 评论(0) 编辑
posted @ 2009-04-30 19:09 麦香老农 阅读(75) 评论(0) 编辑
posted @ 2009-04-20 17:36 麦香老农 阅读(1976) 评论(2) 编辑
posted @ 2009-04-17 17:53 麦香老农 阅读(566) 评论(6) 编辑

事件

在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订户”。

    public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
Car car = new Car();
car.OnOilWarning += new OilEventHandler(OilWarning); //关联事件
car.FillOil(5);
car.Startup();
}
public void OilWarning(object sender, OilEventArgs e)
{
MessageBox.Show("监测到了汽车油量异常,当前油量为:" + e.OilMass);
}
}
//事件代理,可以理解为这个事件要传送什么内容
//事件参数我们使用自己写的 OilEventArgs
public delegate void OilEventHandler(object sender, OilEventArgs e);
//事件参数
public class OilEventArgs : System.EventArgs
{
private int _oilMass = 0; //油量
public int OilMass
{
get
{
return _oilMass;
}
}
public OilEventArgs(int oilMass)
{
_oilMass = oilMass;
}
}
//汽车类,包含事件成员
//当启动汽车时,如果油量少于某一个值,将会触发事件
public class Car
{
private int _oilMass = 0; //油量
public event OilEventHandler OnOilWarning; //定义事件成员,事件名称为 OnOilWarning
//给汽车加油
public void FillOil(int oilMass)
{
_oilMass = oilMass;
}
//启动汽车
public void Startup()
{
if (_oilMass < 10)
{
OnOilWarning(this, new OilEventArgs(_oilMass));
}
}
}
posted @ 2009-04-17 17:39 麦香老农 阅读(300) 评论(2) 编辑
MSSQL 2005 DML触发器
可以分为以下两种:
after触发器——即在执行(delete、update、insert)数据库操作是触发
定义方式
--triggerName即触发器名称
create trigger triggerName
--tableName即要设定触发器的表名
on tableName
--do可为delete、update、insert
--after触发器可以使用after 或for关键字
after do
as
……

DEMO
create trigger forDelete
on stu_table
after delete
declare @deletedNum int
set @deletedNum=(select count(*) from deleted)
print @deletedNum

执行后将打印出影响行数

instead of 触发器,顾名思义就是代替用户的数据操作执行触发器设定的操作
定义方式
--triggerName即触发器名称
create trigger triggerName
--tableName即要设定触发器的表名
on tableName
--do可为delete、update、insert
instead of do
as
……

DEMO
alter trigger deleteAlert
on userTable
instead of delete
as
print '不允许删除此表中的记录'

执行后将打印出:不允许删除此表中的记录

INSTEAD OF 触发器的主要优点:
1、可以使不能更新的视图支持更新。基于多个基表的视图必须使用 INSTEAD OF 触发器来支持引用多个表中数据的插入、更新和删除操作。
2、可以以编写这样的逻辑代码:在允许批处理的其他部分成功的同时拒绝批处理中的某些部分。

有一点要注意:  
对于含有使用 DELETE 或 UPDATE 级联操作定义的外键的表,不能定义 INSTEAD OF DELETE 和 INSTEAD OF UPDATE 触发器。

posted @ 2009-03-26 16:28 麦香老农 阅读(216) 评论(0) 编辑
posted @ 2009-03-25 16:42 麦香老农 阅读(519) 评论(2) 编辑
posted @ 2009-03-20 17:01 麦香老农 阅读(1062) 评论(0) 编辑