C# 利用委托和事件 传入一个参数进行进行计算并返回结果
2013-11-11 11:33
525 查看
一、委托定义
[code]{
[/code]
二、调用委托方法定义
三、应用
publicclassTestData
[code]{
//定义委托
publicdelegatevoidGet_TestDataEventHandler(Get_TestDataEventArgse);
//定义事件
publiceventGet_TestDataEventHandlerGet_TestData;
//定义数据类型传递和获取Observer所感兴趣的信息
//继承EventArgs类
publicclassGet_TestDataEventArgs:EventArgs
{
//传递两个参数strWherestrIN
//获取一个数据dataset类型执行查询后返回的数据集
publicreadonlystringstrWhere,strIN;
privateDataSetds;
///<summary>
///参数类型初始化
///</summary>
///<paramname="strWhere">数据库查询语句WHERE </param>
///<paramname="strIN">数据库查询语句 IN </param>
publicGet_TestDataEventArgs(stringstrWhere,stringstrIN)
{
this.strWhere=strWhere;
this.strIN=strIN;
}
//设置方法执行完毕后的Dataset类型的数据
publicDataSetData
{
set{ds=value;}
get{returnds;}
}
}
privateDataSet_testdata;
///<summary>
///返回数据DataSet
///</summary>
publicDataSetTestdata
{
get{return_testdata;}
}
//判断事件是否有赋值
protectedvirtualvoidonGet_TestData(Get_TestDataEventArgse)
{
if(Get_TestData!=null)
{
Get_TestData(e);
_testdata=e.Data;
}
}
///<summary>
///开始获取数据
///</summary>
///<paramname="e"></param>
publicvoidStart(Get_TestDataEventArgse)
{
onGet_TestData(e);
}
}
[/code]
二、调用委托方法定义
///<summary>
///多芯查询有IN条件
///</summary>
///<paramname="e"></param>
publicvoidGetdata_Method_Multicore(TestData.Get_TestDataEventArgse)
{
stringsql="SELECT*";
sql+="WHERE(NameIN("+e.strIN+"))";
e.Data=dbs.Query(sql);
}
///<summary>
///双并查询有IN条件
///</summary>
///<paramname="e"></param>
publicvoidGetdata_Method_TwainCore(TestData.Get_TestDataEventArgse)
{
stringsql="SELECT*";
sql+="WHERE"+e.strWhere+"AND(ResultLIKEN'%PASS%')AND(NameIN("+e.strIN+"))";
e.Data=dbs.Query(sql);
}
///<summary>
///单芯查询无IN条件
///</summary>
///<paramname="e"></param>
publicvoidGetData_Method_OneCore(TestData.Get_TestDataEventArgse)
{
stringsql="SELECT*";
sql+="WHERE"+e.strWhere+"AND(ResultLIKEN'%PASS%')";
e.Data=dbs.Query(sql);
}
三、应用
TestData_TestData=newTestData();
_TestData.Get_TestData+=_Method_User_3D.GetData_Method_OneCore;//3D数据查询方法设置
stringstrWhere="Where语句";//Where语句
stringstrIN="IN语句";//IN语句为空
Maticsoft.DAL.TestData.Get_TestDataEventArgse=newDAL.TestData.Get_TestDataEventArgs(strWhere,strIN);//委托数据类型初始化
_TestData.Start(e);//开始查询
DataSetds=_TestData.Testdata;//查询到的数据
if(ds.Tables[0].Rows.Count>0)//如果有记录则表示为良品
{
_result_3D=true;
}
else{_result_3D=false;}
相关文章推荐
- C#利用NPOI处理excel的类 NPOIHelper.cs
- C# 自定义颜色
- VS2012 怎么把.net 4.6框架做的项目转为.net 3.5
- c#winform中 TabControl的选项卡改变时的事件
- C# 位域[flags] 转
- C# winform判断文本框内容是否为空
- 大白话系列之C#委托与事件讲解(序言)
- 大白话系列之C#委托与事件讲解(三)
- 大白话系列之C#委托与事件讲解(二)
- 大白话系列之C#委托与事件讲解(一)
- c# 获取时间差
- C#实现因式分解代码
- c# in depth之泛型的类型约束详细
- 单例模式的五个实现方法比较 via C#
- ref和out的区别在C# 中
- c#中获取服务器IP,客户端IP以及其它
- C#算法学习-->递归
- C#字符串加密和解密
- C# 处理文件的操作( File静态类 和 FileInfo普通类 ,他们用于复制,删除,创建,等等 不包含读写)
- c# global::