/// <summary> /// 函数名:S_Craft /// 作者:bush2582 /// 作用:根据传入的条件项,选择查询的模式一共支持以下的几种模式: /// 1、状态1下使用模糊查询,通过参数PBC_Name(工艺名称)查询记录 /// 2、状态2下使用精确的查询,通过参数PBC_Name(工艺名称)查询记录 /// 3、状态3下使用精确的查询,通过参数PBC_Name(工艺名称)和@PBC_Time(预警天数)查询 /// 4、状态4下使用精确的查询,通过参数PBC_PassRate(合格率参考标准)查询 /// 6、状态6下罗列所有的工艺信息 /// 7、查询是否在更新状态下有和数据库中其他的记录有相同名字 /// 日期:2014年1月14日 /// </summary> /// <param name="InfoWantToSearch">要被检索的信息</param> /// <param name="condition">选择检索模式</param> /// <returns>记录集</returns> public DataSet S_Craft(ProcessCraftMgtInfo InfoWantToSearch, string condition) { SqlParameter[] parm = new SqlParameter[6]; //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_ID参数 parm[0] = new SqlParameter("@PBC_ID", SqlDbType.UniqueIdentifier); parm[0].Value = InfoWantToSearch.CraftID; //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_Name参数 parm[1] = new SqlParameter("@PBC_Name", SqlDbType.VarChar, 60); parm[1].Value = InfoWantToSearch.CraftName; //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_Time参数 parm[2] = new SqlParameter("@PBC_Time", SqlDbType.SmallInt); parm[2].Value = Convert.ToInt32(InfoWantToSearch.CraftWaringDay); //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_PassRate参数 parm[3] = new SqlParameter("@PBC_PassRate", SqlDbType.Decimal, 18); parm[3].Value = Convert.ToDecimal(InfoWantToSearch.CraftPassRate); //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_Parameter参数 parm[4] = new SqlParameter("@PBC_Parameter", SqlDbType.VarChar, 200); parm[4].Value = InfoWantToSearch.CraftParameter; //对应存储过程的Proc_S_PBCraftInfo_Condition的@Condition参数 parm[5] = new SqlParameter("@Condition", SqlDbType.SmallInt); parm[5].Value = Convert.ToInt32(condition);//选择查询模式,看是支持哪种查询模式 return(SqlHelper.GetDataSet(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "Proc_S_PBCraftInfo_Condition", //调用数据库中的存储过程Proc_S_PBCraftInfo_Condition parm)); //提供参数 }
/// <summary> /// 函数名:I_Craft /// 作者:bush2582 /// 作用:插入一条新的记录,并检查页面传入的参数是否符合要求 /// 返回值:bool 如果参数错误或则插入已有的相同的数据,返回失败 /// </summary> /// <param name="InfoWantInert">要被插入的信息</param> /// <returns>返回是否成功</returns> public bool I_Craft(ProcessCraftMgtInfo InfoWantInert) { //判断当前的工序名字,工序预警天数不能为空,或则是否工艺的参考参数太长,或则合格率不是数字 if (InfoWantInert.CraftName == "" || InfoWantInert.CraftWaringDay == "0" || InfoWantInert.CraftParameter.Length > 200 || base.IsMatchDecimal(InfoWantInert.CraftPassRate, 0, 1) == false )//注:这里有不需要用正则表达式对CraftPassRate和CraftWaringDay进行是否是数字的判断,因为在html前台已经判断过了 { return(false); } else { return(mProcessCraftMgt.I_Craft(InfoWantInert)); } }
private const string StrMode7_S_ALL = "7"; //查询是否在更新状态下有和数据库中其他的记录有相同名字 /* =======================================================================================*/ /* ===================================方法定义区===========================================*/ /// <summary> /// 函数名:GetSearchMode /// 作者:bush2582 /// 作用:根据传入的参数获取当前应该采取哪种 /// </summary> /// <param name="InfoWantToSearch"></param> /// <returns></returns> private string GetSearchMode(ProcessCraftMgtInfo InfoWantToSearch) { if (InfoWantToSearch.CraftName != "" && InfoWantToSearch.CraftWaringDay != "0")//如果要被搜索的工序名称不为空且预警天数不为空 { return(SrtMode3_AS_PBC_Name_PBC_Time); } else if (InfoWantToSearch.CraftName == "" && InfoWantToSearch.CraftWaringDay != "0")//如果工艺名称为空,预警天数不为空 { return(StrMode4_AS_PBC_Time); } else if (InfoWantToSearch.CraftName != "" && InfoWantToSearch.CraftWaringDay == "0")//如果工艺名称不为空,预警天数为空 { return(StrMode1_S_PBC_Name); } else { return(null); } }
/// <summary> /// 函数名:I_Craft /// 作者:bush2582 /// 日期:2014年1月14日 /// 作用:插入一条记录 /// 参数:ProcessCraftMgtInfo InfoWantInert:要被插入的信息 /// 返回值:bool 是否插入成功,重复插入相同的工序到数据库中会导致失败 /// </summary> /// <param name="InfoWantInert">要被插入的信息</param> /// <returns>表是否插入成功</returns> public bool I_Craft(ProcessCraftMgtInfo InfoWantInert) { SqlParameter[] parm = new SqlParameter[5]; //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_Name参数 parm[0] = new SqlParameter("@PBC_Name", SqlDbType.VarChar, 60); parm[0].Value = InfoWantInert.CraftName; //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_Time参数 parm[1] = new SqlParameter("@PBC_Time", SqlDbType.SmallInt); parm[1].Value = InfoWantInert.CraftWaringDay; //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_PassRate参数 parm[2] = new SqlParameter("@PBC_PassRate", SqlDbType.Decimal); parm[2].Value = InfoWantInert.CraftPassRate; //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_Parameter参数 parm[3] = new SqlParameter("@PBC_Parameter", SqlDbType.VarChar, 200); parm[3].Value = InfoWantInert.CraftParameter; //对应存储过程的Proc_S_PBCraftInfo_Condition返回的值 parm[4] = new SqlParameter("@return", SqlDbType.SmallInt); parm[4].Direction = ParameterDirection.ReturnValue; IntEffetiveLine = SqlHelper.ExecuteNonQuery( SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "Proc_I_PBCraftInfo", //调用存储过程 parm); //提供参数 //如果执行存储过程后,返回值为负,表示执行未成功。参见MSDN对SqlHelper.ExecuteNonQuery的说明 //Update、Insert 和 Delete 语句返回受影响的行数 //也有可能是数据库中已经存在相同名字的工序,则插入失败,存储过程返回1表示失败 if (IntEffetiveLine < 0 || parm[4].Value.ToString() == "1") { return(false); } else { return(true); } }
/// <summary> /// 函数名:U_Craft /// 作者:bush2582 /// 作用:根据传入的参数更新一条记录 /// 参数:ProcessCraftMgtInfo InfoWantUpdata:要被更新的参数 /// 日期:2014年1月14日 /// </summary> /// <param name="InfoWantUpdata">要被更新的参数</param> /// <returns>是否成功</returns> public bool U_Craft(ProcessCraftMgtInfo InfoWantUpdata) { SqlParameter[] parm = new SqlParameter[5]; //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_ID参数 parm[0] = new SqlParameter("@PBC_ID", SqlDbType.UniqueIdentifier); parm[0].Value = InfoWantUpdata.CraftID; //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_Name参数 parm[1] = new SqlParameter("@PBC_Name", SqlDbType.VarChar, 60); parm[1].Value = InfoWantUpdata.CraftName; //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_Time参数 parm[2] = new SqlParameter("@PBC_Time", SqlDbType.SmallInt); parm[2].Value = Convert.ToInt32(InfoWantUpdata.CraftWaringDay); //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_PassRate参数 parm[3] = new SqlParameter("@PBC_PassRate", SqlDbType.Decimal); parm[3].Value = Convert.ToDecimal(InfoWantUpdata.CraftPassRate); //对应存储过程的Proc_S_PBCraftInfo_Condition的@PBC_Parameter参数 parm[4] = new SqlParameter("@PBC_Parameter", SqlDbType.VarChar, 200); parm[4].Value = InfoWantUpdata.CraftParameter; IntEffetiveLine = SqlHelper.ExecuteNonQuery( SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "Proc_U_PBCraftInfo", parm); //如果执行存储过程后,返回值为负,表示执行未成功。参见MSDN对SqlHelper.ExecuteNonQuery的说明 //Update、Insert 和 Delete 语句返回受影响的行数 if (IntEffetiveLine < 0) { return(false); } else { return(true); } }
/// <summary> /// 函数名:U_Craft /// 作者:bush2582 /// 作用:根据信息更新数据库中的一条记录 /// 返回值:是否成功 /// </summary> /// <param name="InfoWantUpdata"></param> /// <returns></returns> public bool U_Craft(ProcessCraftMgtInfo InfoWantUpdata) { if (base.IsMatchInt(InfoWantUpdata.CraftWaringDay, 0, 10) == false)//判定是否是整数且是否是符合上下界 { return(false); } else if (InfoWantUpdata.CraftParameter.Length > 200)//判定长度 { return(false); } else if (base.IsMatchDecimal(InfoWantUpdata.CraftPassRate, 0, 1) == false)//判定是否是小数数且是否是符合上下界 { return(false); } else if (mProcessCraftMgt.S_Craft(InfoWantUpdata, StrMode7_S_ALL).Tables[0].Rows.Count > 0)//如果要被跟新到数据库中的工序名字和数据库中已有的工序名称一样,则返回失败 { return(false); } else { mProcessCraftMgt.U_Craft(InfoWantUpdata); return(true); } }
/// <summary> /// 函数名:S_Craft /// 作者:bush2582 /// 作用:根据条件查询信息 /// 日期:2014年1月15日 /// </summary> /// <param name="InfoWantToSearch">要被搜索的信息</param> /// <param name="condition">条件选项</param> /// <returns>记录集</returns> public DataSet S_Craft(ProcessCraftMgtInfo InfoWantToSearch) { return(mProcessCraftMgt.S_Craft(InfoWantToSearch, GetSearchMode(InfoWantToSearch))); }