您的位置:首页 > 编程语言 > C#

C# 利用委托和事件 传入一个参数进行进行计算并返回结果

2013-11-11 11:33 525 查看
一、委托定义

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;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: