当前位置: 首页 > wzjs >正文

magento网站制作东莞网站建设优化推广

magento网站制作,东莞网站建设优化推广,网站推广营销活动,深圳宝安区有哪些街道目录 代码反面案例 李青与诺基亚的兴衰 并行项目下的利益纠葛与团队协作 未完待续。。。 今天分享的是一个反面案例,也算是一个避坑指南了。 代码反面案例 今天分享的代码是一个反面案例,当时由于项目人员变动频繁,经常是新人看不太懂旧…

目录

代码反面案例

李青与诺基亚的兴衰

并行项目下的利益纠葛与团队协作

未完待续。。。


今天分享的是一个反面案例,也算是一个避坑指南了。

代码反面案例

今天分享的代码是一个反面案例,当时由于项目人员变动频繁,经常是新人看不太懂旧的代码,但是进度又来不及,所以临时想了一个办法,即借新还旧。

具体的操作方法是:旧文件不动,利用类的多态属性,重新写一个新的文件,比如旧文件名是demo.cs,那么新人过来就加一个新的文件名:demoEx.cs。但是不推荐这样的方式,会造成后期维护起来极其的困难!

所以在后来的最终版本中,项目经常出现类似上面命名规则的两个文件。今天的例子是个极端,出现了三个文件,由于demo.cs文件是空的,就不再展示了,具体代码如下:

demoEx.cs文件(代码较多,已做删减处理。。。)

public class CauseTroubleOperatorEx:Traffic.Common.TrafficOperatorEx{#region Update方法//对DATASET设置表间关系public static void SetDataRelation(System.Data.DataSet currentDS){			currentDS=(Traffic.Mechanism.CauseTroubleRules.dsMaterialsAudit)currentDS;DataRelation drl=currentDS.Relations.Add("MaterialsAppraise",currentDS.Tables["MaterialsAuditPrice"].Columns["Id"],currentDS.Tables["AppraiseProject"].Columns["MaterialsAuditPriceID"],true);DataRelation drl2=currentDS.Relations.Add("MaterialsRepairManPower",currentDS.Tables["MaterialsAuditPrice"].Columns["Id"],currentDS.Tables["RepairManPowerCost"].Columns["MaterialsAuditPriceID"],true);currentDS.EnforceConstraints=true;return;}public Reports Update(System.Data.DataSet  dataSet){Reports reports=new Reports();for(int i=0;i<dataSet.Tables.Count;i++){if (dataSet.Tables[i].Rows.Count>0){this.Update(dataSet.Tables[i]);}}reports.ReturnObject=dataSet;reports.ReturnBool =true;return reports;}public Reports Update(System.Data.DataTable  dataTable){int iRecordsAffected=0;Reports reports=new Reports();System.Data.OleDb.OleDbDataAdapter dataAdapter=new  System.Data.OleDb.OleDbDataAdapter();;System.Data.OleDb.OleDbConnection cn= new System.Data.OleDb.OleDbConnection();System.Data.OleDb.OleDbCommandBuilder oCommandBuilder=new System.Data.OleDb.OleDbCommandBuilder();System.Data.OleDb.OleDbCommand oleInsertCommand1=new System.Data.OleDb.OleDbCommand();System.Data.OleDb.OleDbCommand oleInsertCommand2=new System.Data.OleDb.OleDbCommand();//创建适配器对象和连接对象。try{if (dataTable==null){reports.ReturnBool=true;reports.ModuleName="Update";reports.ReturnInt=0;return reports;}//cn.ConnectionString = @"Provider=SQLOLEDB.1;Password=infopro;Persist Security Info=True;User ID=sa;Initial Catalog=BusDev;Data Source=192.168.10.5;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=XHG;Use Encryption for Data=False;Tag with column collation when possible=False";cn=base.getConnection();System.Type oDataTableType=dataTable.GetType();//设置适配器对象的四种命令。switch(oDataTableType.Name){case "AppraiseProjectDataTable"://设置事件处理器。dataAdapter.RowUpdating += new OleDbRowUpdatingEventHandler( OnRowUpdatingOfAppraiseProjectDataTable );dataAdapter.RowUpdated += new OleDbRowUpdatedEventHandler( OnRowUpdatedOfAppraiseProjectDataTable );dataAdapter.SelectCommand=dsMaterialsAudit.AppraiseProjectDataTable.GetSelectCommand("");dataAdapter.SelectCommand.Connection=cn;oCommandBuilder.DataAdapter=dataAdapter;dataAdapter.InsertCommand=oCommandBuilder.GetInsertCommand();dataAdapter.InsertCommand.Connection=cn;dataAdapter.UpdateCommand=oCommandBuilder.GetUpdateCommand();dataAdapter.UpdateCommand.Connection=cn;dataAdapter.DeleteCommand=oCommandBuilder.GetDeleteCommand();dataAdapter.DeleteCommand.Connection=cn;break;case "MaterialsAuditParameterDataTable"://设置事件处理器。dataAdapter.RowUpdating += new OleDbRowUpdatingEventHandler( OnRowUpdating );dataAdapter.RowUpdated += new OleDbRowUpdatedEventHandler( OnRowUpdated );dataAdapter.SelectCommand=dsMaterialsAudit.MaterialsAuditParameterDataTable.GetSelectCommand("");dataAdapter.SelectCommand.Connection=cn;oCommandBuilder.DataAdapter=dataAdapter;dataAdapter.InsertCommand=oCommandBuilder.GetInsertCommand();dataAdapter.InsertCommand.Connection=cn;dataAdapter.UpdateCommand=oCommandBuilder.GetUpdateCommand();dataAdapter.UpdateCommand.Connection=cn;dataAdapter.DeleteCommand=oCommandBuilder.GetDeleteCommand();dataAdapter.DeleteCommand.Connection=cn;break;case "MaterialsAuditPriceDataTable"://设置事件处理器。dataAdapter.RowUpdating += new OleDbRowUpdatingEventHandler( OnRowUpdating );dataAdapter.RowUpdated += new OleDbRowUpdatedEventHandler( OnRowUpdated );dataAdapter.SelectCommand=dsMaterialsAudit.MaterialsAuditPriceDataTable.GetSelectCommand("");dataAdapter.SelectCommand.Connection=cn;oCommandBuilder.DataAdapter=dataAdapter;dataAdapter.InsertCommand=oCommandBuilder.GetInsertCommand();dataAdapter.InsertCommand.Connection=cn;dataAdapter.UpdateCommand=oCommandBuilder.GetUpdateCommand();dataAdapter.UpdateCommand.Connection=cn;dataAdapter.DeleteCommand=oCommandBuilder.GetDeleteCommand();dataAdapter.DeleteCommand.Connection=cn;	break;case "RepairManPowerCostDataTable"://设置事件处理器。dataAdapter.RowUpdating += new OleDbRowUpdatingEventHandler( OnRowUpdatingOfRepairManPowerCostDataTable );dataAdapter.RowUpdated += new OleDbRowUpdatedEventHandler( OnRowUpdatedOfRepairManPowerCostDataTable );dataAdapter.SelectCommand=dsMaterialsAudit.RepairManPowerCostDataTable.GetSelectCommand("");dataAdapter.SelectCommand.Connection=cn;dataAdapter.SelectCommand.UpdatedRowSource=UpdateRowSource.Both;oCommandBuilder.DataAdapter=dataAdapter;dataAdapter.InsertCommand=oCommandBuilder.GetInsertCommand();dataAdapter.InsertCommand.Connection=cn;dataAdapter.UpdateCommand=oCommandBuilder.GetUpdateCommand();dataAdapter.UpdateCommand.Connection=cn;dataAdapter.DeleteCommand=oCommandBuilder.GetDeleteCommand();dataAdapter.DeleteCommand.Connection=cn;break;case "RepairManPowerParameterSettingDataTable"://设置事件处理器。dataAdapter.RowUpdating += new OleDbRowUpdatingEventHandler( OnRowUpdating );dataAdapter.RowUpdated += new OleDbRowUpdatedEventHandler( OnRowUpdated );dataAdapter.SelectCommand=dsMaterialsAudit.RepairManPowerParameterSettingDataTable.GetSelectCommand("");dataAdapter.SelectCommand.Connection=cn;oCommandBuilder.DataAdapter=dataAdapter;dataAdapter.InsertCommand=oCommandBuilder.GetInsertCommand();dataAdapter.InsertCommand.Connection=cn;dataAdapter.UpdateCommand=oCommandBuilder.GetUpdateCommand();dataAdapter.UpdateCommand.Connection=cn;dataAdapter.DeleteCommand=oCommandBuilder.GetDeleteCommand();dataAdapter.DeleteCommand.Connection=cn;break;default:break;}iRecordsAffected=dataAdapter.Update(dataTable);}catch(Exception err){Console.WriteLine(err.Message);}//返回更新后的DataTable给客户端,进行合并。reports.ReturnBool=true;reports.ModuleName="Update";reports.ReturnInt=iRecordsAffected;reports.ReturnObject=dataTable;return reports;}/// <summary>///  新增、修改、删除的业务方法/// </summary>/// <param name="sender"></param>/// <param name="args"></param>protected void OnRowUpdated(object sender, OleDbRowUpdatedEventArgs args){//判断是否出错,如果出现错误,解释错误。if (args.RecordsAffected == 0 ){args.Row.RowError ="错误类型:"+args.Errors.GetType().Name+",  错误信息:"+args.Errors.Message;args.Status = UpdateStatus.SkipCurrentRow;//args.Status = UpdateStatus.ErrorsOccurred;return ;}//获取新增行的Idif (args.StatementType==StatementType.Insert){this.GetInsertRowId(args.Row);}switch( args.StatementType){case StatementType.Insert:break;case StatementType.Update:break;case StatementType.Delete:break;case StatementType.Select:break;}}protected static void OnRowUpdating(object sender, OleDbRowUpdatingEventArgs args){switch( args.StatementType){case StatementType.Insert:break;case StatementType.Update:					break;case StatementType.Delete:break;case StatementType.Select:break;}}#endregion#region  AppraiseProjectDataTable operator...../// <summary>///  新增、修改、删除的业务方法/// </summary>/// <param name="sender"></param>/// <param name="args"></param>protected void OnRowUpdatedOfAppraiseProjectDataTable(object sender, OleDbRowUpdatedEventArgs args){//提交之后对相关表进行更新//判断是否出错,如果出现错误,解释错误。if (args.RecordsAffected == 0 ){args.Row.RowError ="错误类型:"+args.Errors.GetType().Name+",  错误信息:"+args.Errors.Message;args.Status = UpdateStatus.SkipCurrentRow;return ;}//获取新增行的Idif (args.StatementType==StatementType.Insert){this.GetInsertRowId(args.Row);}switch( args.StatementType){case StatementType.Select:break;default://首先获取相关表System.Data.DataSet ds=args.Row.Table.DataSet;System.Data.DataTable dt=ds.Tables["MaterialsAuditPrice"];//获取相关参数Traffic.Mechanism.CauseTroubleRules.CauseTrouble  oOperator=new Traffic.Mechanism.CauseTroubleRules.CauseTrouble();//小五金的占材料费用比例(MaterialPricePercent)decimal materialsPricePercent=oOperator.GetMaterialsAuditParameter("MaterialPricePercent");System.Data.DataRow dr=args.Row;int materialsAuditPriceID=Convert.ToInt32(dr["MaterialsAuditPriceID"]);System.Data.DataRow mdr=dt.Rows.Find(materialsAuditPriceID);mdr["TotalMaterialsPrice"]=oOperator.ComputeTotalMaterialsPrice(materialsAuditPriceID);mdr["TotalHardwarePrice"]=oOperator.ComputeTotalHardWarePrice(materialsAuditPriceID);mdr["TotalPrice"]=oOperator.ComputeTotalPrice(materialsAuditPriceID);(new Traffic.Mechanism.CauseTroubleRules.CauseTroubleOperatorEx()).Update(dt);break;}}#endregion#region  Search、LoadByID 对象操作/// <summary>///  根据条件查找对象 ( 票库, 票库入库单, 票库调拨单 , 票库调入单, 票库调出单, 票库作废单)/// </summary>/// <param name="savetype">对象的类型</param>/// <param name="searchObject">搜索条件对象</param>/// <param name="currentPage">当前页号</param>/// <param name="pageSize">每页记录数</param>/// <param name="numResults">总记录数</param>/// <returns></returns>public Reports Search(System.Data.DataTable dataTable,string sSQL,Props searchObject,int currentPage, int pageSize,ref int numResults){int iRecordsAffected=0;Reports reports=new Reports();System.Data.OleDb.OleDbDataAdapter dataAdapter=new  System.Data.OleDb.OleDbDataAdapter();;System.Data.OleDb.OleDbConnection cn= new System.Data.OleDb.OleDbConnection();//创建适配器对象和连接对象。cn=this.getConnection();System.Type oDataTableType=dataTable.GetType();string sWhere="";if (searchObject!=null){foreach (Prop p in searchObject) {string SearchValue=(string)p.PropValue;if (SearchValue==null|SearchValue.ToString().Trim()==String.Empty) continue;sWhere+=" And ";switch (p.Key.ToLower()){case "Id":          sWhere+=p.Key+" "+p.OpWay+" "+p.PropValue;break;default:if (p.OpWay.ToString().Trim().ToLower()=="like"){sWhere+=p.Key+" like  '%"+p.PropValue+"%' ";}else{ sWhere+=p.Key+" "+p.OpWay+"  '"+p.PropValue+"' ";}break;}}  }if (sWhere.Trim()!=""){sWhere=sWhere.Substring(4);sWhere=" Where "+ sWhere;}//设置适配器对象的Select命令。System.Data.OleDb.OleDbCommand  oleSelectCommand=new System.Data.OleDb.OleDbCommand ();oleSelectCommand.CommandText=sSQL+sWhere;oleSelectCommand.Connection=cn;dataAdapter.SelectCommand=oleSelectCommand;//调用适配器的Fill命令。dataTable.Clear();iRecordsAffected=dataAdapter.Fill(dataTable.DataSet,(currentPage-1)*pageSize,numResults,dataTable.TableName);			//装载后恢复计算关系。//返回更新后的DataTable给客户端,进行合并。reports.ReturnBool=true;reports.ModuleName="Search";reports.ReturnInt=iRecordsAffected;reports.ReturnObject=dataTable;return reports;}/// <summary>///  根据条件查找对象 ( 票库, 票库入库单, 票库调拨单 , 票库调入单, 票库调出单, 票库作废单)/// </summary>/// <param name="savetype">对象的类型</param>/// <param name="searchObject">搜索条件对象</param>/// <param name="currentPage">当前页号</param>/// <param name="pageSize">每页记录数</param>/// <param name="numResults">总记录数</param>/// <returns></returns>public Reports Search(System.Data.DataTable dataTable,Props searchObject,int currentPage, int pageSize,ref int numResults){int iRecordsAffected=0;Reports reports=new Reports();System.Data.OleDb.OleDbDataAdapter dataAdapter=new  System.Data.OleDb.OleDbDataAdapter();;System.Data.OleDb.OleDbConnection cn= new System.Data.OleDb.OleDbConnection();//创建适配器对象和连接对象。//cn.ConnectionString = @"Provider=SQLOLEDB.1;Password=infopro;Persist Security Info=True;User ID=sa;Initial Catalog=BusDev;Data Source=192.168.10.5;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=XHG;Use Encryption for Data=False;Tag with column collation when possible=False";cn=this.getConnection();System.Type oDataTableType=dataTable.GetType();string sWhere="";foreach (Prop p in searchObject) {string SearchValue=(string)p.PropValue;if (SearchValue==null|SearchValue.ToString().Trim()==String.Empty) continue;sWhere+=" And ";switch (p.Key.ToLower()){case "Id":          sWhere+=p.Key+" "+p.OpWay+" "+p.PropValue;break;default:if (p.OpWay.ToString().Trim().ToLower()=="like"){sWhere+=p.Key+" like  '%"+p.PropValue+"%' ";}else{ sWhere+=p.Key+" "+p.OpWay+"  '"+p.PropValue+"' ";}break;}}  if (sWhere.Trim()!=""){sWhere=sWhere.Substring(4);sWhere=" Where "+ sWhere;}//设置适配器对象的Select命令。switch(oDataTableType.Name){case "AppraiseProjectDataTable":dataAdapter.SelectCommand=dsMaterialsAudit.AppraiseProjectDataTable.GetSelectCommand(sWhere);dataAdapter.SelectCommand.Connection=cn;break;case "MaterialsAuditParameterDataTable":dataAdapter.SelectCommand=dsMaterialsAudit.MaterialsAuditParameterDataTable.GetSelectCommand(sWhere);dataAdapter.SelectCommand.Connection=cn;break;case "MaterialsAuditPriceDataTable":dataAdapter.SelectCommand=dsMaterialsAudit.MaterialsAuditPriceDataTable.GetSelectCommand(sWhere);dataAdapter.SelectCommand.Connection=cn;break;case "RepairManPowerCostDataTable":dataAdapter.SelectCommand=dsMaterialsAudit.RepairManPowerCostDataTable.GetSelectCommand(sWhere);dataAdapter.SelectCommand.Connection=cn;break;case "RepairManPowerParameterSettingDataTable":dataAdapter.SelectCommand=dsMaterialsAudit.RepairManPowerParameterSettingDataTable.GetSelectCommand(sWhere);dataAdapter.SelectCommand.Connection=cn;break;case "tbBusCompanyDataTable":dataAdapter.SelectCommand=dsBusCompany1.tbBusCompanyDataTable.GetSelectCommand(sWhere);dataAdapter.SelectCommand.Connection=cn;break;case "tbRouteDataTable":dataAdapter.SelectCommand=dsBusCompany1.tbRouteDataTable.GetSelectCommand(sWhere);dataAdapter.SelectCommand.Connection=cn;break;default:reports.ReturnBool =false;break;}//调用适配器的Fill命令。dataTable.Clear();iRecordsAffected=dataAdapter.Fill(dataTable.DataSet,(currentPage-1)*pageSize,numResults,dataTable.TableName);			//返回更新后的DataTable给客户端,进行合并。reports.ReturnBool=true;reports.ModuleName="Search";reports.ReturnInt=iRecordsAffected;reports.ReturnObject=dataTable;return reports;}#endregion}

DemoNew.cs文件:

	public class CauseTroubleOperatorNew:Traffic.Common.TrafficOperatorEx{#region GetSelectCommand方法private   System.Data.OleDb.OleDbCommand GetSelectCommand(string sDataTableName ,string sWhere ){System.Data.OleDb.OleDbCommand oleDbCommand = new System.Data.OleDb.OleDbCommand();	switch(sDataTableName){case "TroubleMaterialCostDataTable":oleDbCommand.CommandText="SELECT * FROM TroubleMaterialCost";break;case "MaterialParameterDataTable":oleDbCommand.CommandText="SELECT * FROM MaterialParameter";break;case "MaterialAuditParameterDataTable":oleDbCommand.CommandText="SELECT * FROM MaterialAuditParameter";break;case "TotalAuditPriceDataTable":oleDbCommand.CommandText="SELECT * FROM TotalAuditPrice";break;case "ManPowerCostDataTable":oleDbCommand.CommandText="SELECT * FROM ManPowerCost";break;case "ManPowerParameterDataTable":oleDbCommand.CommandText="SELECT * FROM ManPowerParameter";break;case "ManHourDataTable":oleDbCommand.CommandText="SELECT * FROM ManHour";break;case "DamageLevelDataTable":oleDbCommand.CommandText="SELECT * FROM DamageLevel";break;case "wzMaterialDataTable":oleDbCommand.CommandText="SELECT * FROM wzMaterial";break;case "HFrequenceMaterialDataTable":oleDbCommand.CommandText="SELECT * FROM HFrequenceMaterial";break;case "wzMaterialOutBillDataTable":oleDbCommand.CommandText="SELECT * FROM wzMaterialOutBill";break;case "wzMaterialOutBillMXDataTable":oleDbCommand.CommandText="SELECT * FROM wzMaterialOutBillMX";break;default:break;}if (oleDbCommand.CommandText!=""){oleDbCommand.CommandText=oleDbCommand.CommandText+" "+sWhere;						}if (sDataTableName=="HFrequenceMaterialDataTable"){oleDbCommand.CommandText=oleDbCommand.CommandText+" order by Frequence DESC";}return oleDbCommand;}#endregion#region Update方法public Reports Update(System.Data.DataTable  dataTable){int iRecordsAffected=0;Reports reports=new Reports();System.Data.OleDb.OleDbDataAdapter dataAdapter=new  System.Data.OleDb.OleDbDataAdapter();;System.Data.OleDb.OleDbConnection cn= new System.Data.OleDb.OleDbConnection();System.Data.OleDb.OleDbCommandBuilder oCommandBuilder=new System.Data.OleDb.OleDbCommandBuilder();//创建适配器对象和连接对象。try{if (dataTable==null){reports.ReturnBool=true;reports.ModuleName="Update";reports.ReturnInt=0;return reports;}cn=this.getConnection();System.Type oDataTableType=dataTable.GetType();//设置适配器对象的四种命令。dataAdapter.SelectCommand=this.GetSelectCommand(oDataTableType.Name,"");if (dataAdapter.SelectCommand !=null){//设置事件处理器。dataAdapter.RowUpdating += new OleDbRowUpdatingEventHandler( OnRowUpdating );dataAdapter.RowUpdated += new OleDbRowUpdatedEventHandler( OnRowUpdated );dataAdapter.SelectCommand.Connection=cn;oCommandBuilder.DataAdapter=dataAdapter;System.Data.OleDb.OleDbCommand oleInsertCommand1=oCommandBuilder.GetInsertCommand();System.Data.OleDb.OleDbCommand oleInsertCommand2=new System.Data.OleDb.OleDbCommand() ;oleInsertCommand2.UpdatedRowSource=UpdateRowSource.Both;					oleInsertCommand2.CommandText=oleInsertCommand1.CommandText+"; SELECT * FROM "+dataTable.TableName+" WHERE (Id = @@IDENTITY)";foreach( System.Data.OleDb.OleDbParameter oleDbParameter in oleInsertCommand1.Parameters){oleInsertCommand2.Parameters.Add(oleDbParameter.ParameterName,oleDbParameter.OleDbType,oleDbParameter.Size,oleDbParameter.SourceColumn);}dataAdapter.InsertCommand=oleInsertCommand2;dataAdapter.InsertCommand.Connection=cn;dataAdapter.UpdateCommand=oCommandBuilder.GetUpdateCommand();dataAdapter.UpdateCommand.Connection=cn;dataAdapter.DeleteCommand=oCommandBuilder.GetDeleteCommand();dataAdapter.DeleteCommand.Connection=cn;	//调用适配器的Update命令。iRecordsAffected=dataAdapter.Update(dataTable);}//这里写其他业务规则。}catch(Exception err){Console.WriteLine(err.Message);}//返回更新后的DataTable给客户端,进行合并。reports.ReturnBool=true;reports.ModuleName="Update";reports.ReturnInt=iRecordsAffected;reports.ReturnObject=dataTable;return reports;}/// <summary>///  新增、修改、删除的业务方法/// </summary>/// <param name="sender"></param>/// <param name="args"></param>protected static void OnRowUpdated(object sender, OleDbRowUpdatedEventArgs args){//判断是否出错,如果出现错误,解释错误。if (args.RecordsAffected == 0 ){args.Row.RowError =CErrorHandler.TranslateError(args);args.Status = UpdateStatus.SkipCurrentRow;//args.Status = UpdateStatus.ErrorsOccurred;return ;}switch( args.StatementType){case StatementType.Insert:break;case StatementType.Update:break;case StatementType.Delete:break;case StatementType.Select:break;}}#endregion#region  Search、LoadByID 对象操作/// <summary>///  根据条件查找对象(公司)/// </summary>/// <param name="savetype">对象的类型</param>/// <param name="searchObject">搜索条件对象</param>/// <param name="currentPage">当前页号</param>/// <param name="pageSize">每页记录数</param>/// <param name="numResults">总记录数</param>/// <returns></returns>public Reports Search(System.Data.DataTable dataTable,Props searchObject,int currentPage, int pageSize,ref int numResults){int iRecordsAffected=0;Reports reports=new Reports();System.Data.OleDb.OleDbDataAdapter dataAdapter=new  System.Data.OleDb.OleDbDataAdapter();;System.Data.OleDb.OleDbConnection cn= new System.Data.OleDb.OleDbConnection();//创建适配器对象和连接对象。cn=this.getConnection();System.Type oDataTableType=dataTable.GetType();string sWhere="";foreach (Prop p in searchObject) {string SearchValue=(string)p.PropValue;if (SearchValue==null|SearchValue.ToString().Trim()==String.Empty) continue;sWhere+=" And ";switch (p.Key.ToLower()){case "Id":          sWhere+=p.Key+" "+p.OpWay+" "+p.PropValue;break;default:if (p.OpWay.ToString().Trim().ToLower()=="like"){sWhere+=p.Key+" like  '%"+p.PropValue+"%' ";}else{ sWhere+=p.Key+" "+p.OpWay+"  '"+p.PropValue+"' ";}break;}}  if (sWhere.Trim()!=""){sWhere=sWhere.Substring(4);sWhere=" Where "+ sWhere;}//设置适配器对象的Select命令。dataAdapter.SelectCommand=this.GetSelectCommand(oDataTableType.Name,sWhere);dataAdapter.SelectCommand.Connection=cn;//调用适配器的Fill命令。dataTable.Clear();iRecordsAffected=dataAdapter.Fill(dataTable.DataSet,(currentPage-1)*pageSize,numResults,dataTable.TableName);			//返回更新后的DataTable给客户端,进行合并。reports.ReturnBool=true;reports.ModuleName="Search";reports.ReturnInt=iRecordsAffected;reports.ReturnObject=dataTable;return reports;}#endregion}

李青与诺基亚的兴衰

李青的学历只有大专,但是很喜欢编程的工作。据他自己说,上学期间,就是喜欢打游戏,所以才耽误了考试,没有考上本科。

事实也的确如他所说,他的手机是当时带symbian系统的。有一次迟到,说symbian系统的闹钟坏了,当时也觉得奇怪。手机闹钟都能坏,这诺基亚估计也快差不多了。

果然,几年以后,当各种智能手机流行的时候,诺基亚成了历史。

刚过来的时候,李青还是很卖力的工作,毕竟年轻气盛,很想好好的干一番事业。他来了以后,就跟X经理打得火热,毕竟年纪上更加相近一些。有一次他跟X经理说,等他到我的年龄的时候,一定要比我混的好。

当时的我,并没有在意这些话的真假,也没有去想背后的含义。

并行项目下的利益纠葛与团队协作

上次提及,我们正并行推进两大项目:一是关乎车辆安全的信息系统(简称AQ系统),另一则是ZL系统。AQ系统已由我初步开发,框架大体成型;而ZL系统则尚处于需求与框架构建阶段。因此,我决定安排李青接手AQ系统的后续开发工作,而我则继续担任与客户沟通协调的重任。

客户方的负责人同样姓李,虽非IT出身,但在业务领域内却是行家里手,更是集团车辆安全部门的副总。一般而言,副总都是实干家,李副总自然也不例外。幸运的是,我们之间的沟通一直顺畅无阻,我也在逐步深入了解业务细节。

还记得之前文章中提及的利益问题吗?在AQ项目的管理过程中,我深刻感受到了利益的重要性。经过一系列操作,最终的目的就是为了确定事故费用,以便与保险公司、车队以及驾驶员进行结算。

当时,交强险刚刚推出,为了这个项目,我特意学习了交强险的相关知识。期间,我与李副总就一些问题展开了多次讨论,而大多数情况下,他的见解都是正确的。

起初,李青并未参与这些讨论,都是我确认需求后,再交给他进行代码实现。然而,随着李副总对项目进度的日益关注,为了加快进度,我开始带着李青一同参加沟通会议,这大大减少了信息传递的误差。

但这也引发了一个问题:我发现李青开始与李副总走得很近,甚至在业务讨论中,他的立场明显倾向于李副总。当时,我以为他只是为了加快进度,所以并未多想。然而,现在回想起来,我当时的判断或许过于草率了。

未完待续。。。

http://www.dtcms.com/wzjs/216395.html

相关文章:

  • b站大全2023年更新上海网站seoseodian
  • 自动化设计网站建设百度新闻官网首页
  • 收益网站制作seo每天一贴
  • 网站建设单页面推广模板互联网全网营销
  • 个人网站模板flash企业培训考试app
  • 西安网站建设公司西安网络公司百度账号登录官网
  • 泉州网站建设方案详细手机百度seo快速排名
  • 制作企业网站的新闻单页网站怎么优化
  • 旅游网站建设 策划书1688如何搜索关键词排名
  • 做的比较炫的网站商城小程序开发哪家好
  • 推广网络营销案例泉州百度首页优化
  • 海南e登录appseo优化推广业务员招聘
  • 那个网站卖做防水的烤枪跨境电商平台推广
  • 怎么做网站的签约编辑代运营一家店铺多少钱
  • 九江 网站建设公司合肥网站
  • 域名怎么做网站镇江抖音seo
  • 如何做私彩网站深圳外包网络推广
  • 化妆品网站建设推广学院seo教程
  • 山东超越建设集团网站查询网入口
  • vs2010做网站前台怎样注册个人网站
  • 邢路桥建设总公司网站厦门网
  • 重庆时时彩在线网站制作免费的行情网站app软件
  • 成都公司网站建设全网推广平台
  • 有趣的h5创意设计武汉关键词seo排名
  • 在线阅读小说网站怎么建设今日新闻最新事件
  • 网站开发项目 工作分解图线上营销方式6种
  • 网站建设的发展趋势常德seo
  • 上海品牌网站开发谷歌优化
  • 手机网站建设怎么做网址
  • 如何推广品牌知名度关键词优化是怎么弄的