public void deleteOrderHistAllInsurantData(SqlLib lib, IDb db, object obj, ref DataTable outInsuranceUsrDt)
        {
            string sql = "";
            bool ret = true;
            try
            {
                OrderInfo localOrderInfo = new OrderInfo();
                ret = DataHandle.CompareObjectType(obj, localOrderInfo);
                if (ret)
                {
                    localOrderInfo = (OrderInfo)obj;
                }
                else
                {
                    return;
                }
                if (outInsuranceUsrDt == null)
                {
                    throw new NullReferenceException("outInsuranceUsrDt is null");
                }

                string InsuranceUsrID = "";

                sql = lib.GetSql("SqlOrderInfo/OrderInfo", "GetOrderHistInfo");
                sql = sql + string.Format(" and orderid = '{0}'", localOrderInfo.ORDERID);


                /// 保险人信息
                InsuranceUsrInfo localInsuranceUsrInfo = new InsuranceUsrInfo();

                CTrace.WriteLine(CTrace.TraceLevel.Info, "insurance.outOrderInfo sql={0}.", sql);
                DataTable dt = db.GetTable(sql);

                if (dt != null && dt.Rows.Count > 0)
                {
                    DataRow locaorderDr = dt.Rows[0];

                    localOrderInfo = DataRowToOrderModel(locaorderDr);

                    if (localOrderInfo.BENEFICIARIES != null && !string.IsNullOrEmpty(localOrderInfo.BENEFICIARIES))
                    {
                        InsuranceUsrID = "'" + localOrderInfo.BENEFICIARIES.ToString() + "',";
                    }
                    if (localOrderInfo.BENEFICIARIES2 !=null && !string.IsNullOrEmpty(localOrderInfo.BENEFICIARIES2))
                    {
                        InsuranceUsrID =  InsuranceUsrID +"'" + localOrderInfo.BENEFICIARIES2.ToString() + "',";
                    }
                    if (localOrderInfo.BENEFICIARIES3 != null && !string.IsNullOrEmpty(localOrderInfo.BENEFICIARIES3))
                    {
                        InsuranceUsrID = InsuranceUsrID + "'" + localOrderInfo.BENEFICIARIES3.ToString() + "',";
                    }
                    if (localOrderInfo.INSURANT != null && !string.IsNullOrEmpty(localOrderInfo.INSURANT))
                    {
                        InsuranceUsrID = InsuranceUsrID + "'" + localOrderInfo.INSURANT.ToString() + "',";
                    }
                    if (localOrderInfo.POLICYHOLDER !=null && !string.IsNullOrEmpty(localOrderInfo.POLICYHOLDER))
                    {
                        InsuranceUsrID = InsuranceUsrID + "'" + localOrderInfo.POLICYHOLDER.ToString() + "',";
                    }
                }


                if (string.IsNullOrEmpty(InsuranceUsrID))
                {
                    return;
                }
                DataTable localdt = new DataTable();
                sql = lib.GetSql("SqlInsuranceUsrInfo/InsuranceUsrInfo", "GetInsuranceUsrInfo");


                if (!string.IsNullOrEmpty(InsuranceUsrID))
                {
                    InsuranceUsrID = InsuranceUsrID.Substring(0, InsuranceUsrID.Length - 1);
                    sql += " and INSURANCE_USRID in (" + InsuranceUsrID + " )";
                }
                else
                {
                    throw new NullReferenceException("保单详细信息不能为空");
                }
                if (!string.IsNullOrEmpty(sql))
                {
                    localdt = db.GetTable(sql);
                }

                for (int i = 0; i < localdt.Rows.Count; i++)
                {
                    DataRow dr = localdt.Rows[i];
                    dr.Delete();
                }
                outInsuranceUsrDt.Merge(localdt, true);
            }
            catch (NullReferenceException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in deleteInsuranceUsrData" + ex.Message);
            }
            catch (ArrayTypeMismatchException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in deleteInsuranceUsrData" + ex.Message);
            }
            catch (Exception ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in deleteInsuranceUsrData" + ex.Message);
                throw;
            }
        }
 /// <summary>
 /// 得到一个对象实体
 /// </summary>
 public InsuranceUsrInfo DataRowToInsuranceUsrInfoModel(DataRow row)
 {
     InsuranceUsrInfo model = new InsuranceUsrInfo();
     if (row != null)
     {
         if (row["NAME"] != null)
         {
             model.NAME = row["NAME"].ToString();
         }
         if (row["SEX"] != null)
         {
             model.SEX = row["SEX"].ToString();
         }
         if (row["IDCARDTYPE"] != null)
         {
             model.IDCARDTYPE = row["IDCARDTYPE"].ToString();
         }
         if (row["IDCARDNO"] != null)
         {
             model.IDCARDNO = row["IDCARDNO"].ToString();
         }
         if (row["IDPERIOD"] != null)
         {
             model.IDPERIOD = row["IDPERIOD"].ToString();
         }
         if (row["DSC"] != null)
         {
             model.DSC = row["DSC"].ToString();
         }
         if (row["CRDT"] != null && row["CRDT"].ToString() != "")
         {
             model.CRDT = row["CRDT"].ToString();
         }
         if (row["CRUSR"] != null)
         {
             model.CRUSR = row["CRUSR"].ToString();
         }
         if (row["MDDT"] != null && row["MDDT"].ToString() != "")
         {
             model.MDDT = row["MDDT"].ToString();
         }
         if (row["MDUSR"] != null)
         {
             model.MDUSR = row["MDUSR"].ToString();
         }
         if (row["PROFESSION"] != null)
         {
             model.PROFESSION = row["PROFESSION"].ToString();
         }
         if (row["POST"] != null)
         {
             model.POST = row["POST"].ToString();
         }
         if (row["INSURANCE_USRID"] != null)
         {
             model.INSURANCE_USRID = row["INSURANCE_USRID"].ToString();
         }
         if (row["Proportion"] != null)
         {
             model.Proportion = row["Proportion"].ToString();
         }
     }
     return model;
 }
        public void deleteInsuranceUsrData(SqlLib lib, IDb db, object obj, ref DataTable outInsuranceUsrDt)
        {
            string sql = "";
            bool ret = true;
            try
            {
                InsuranceUsrInfo InsuranceUsr = new InsuranceUsrInfo();
                ret = DataHandle.CompareObjectType(obj, InsuranceUsr);
                if (ret)
                {
                    InsuranceUsr = (InsuranceUsrInfo)obj;
                }
                else
                {
                    return;
                }
                if (outInsuranceUsrDt == null)
                {
                    throw new NullReferenceException("outInsuranceUsrDt is null");
                }
                DataTable localdt = new DataTable();
                sql = lib.GetSql("SqlInsuranceUsrInfo/InsuranceUsrInfo", "GetInsuranceUsrInfo");

                if (!string.IsNullOrEmpty(InsuranceUsr.INSURANCE_USRID))
                {
                    sql += " and INSURANCE_USRID='" + InsuranceUsr.INSURANCE_USRID + " '";
                }
                else
                {
                    throw new NullReferenceException("保单详细信息不能为空");
                }
                if (!string.IsNullOrEmpty(sql))
                {
                    localdt = db.GetTable(sql);
                }

                for (int i = 0; i < localdt.Rows.Count; i++)
                {
                    DataRow dr = localdt.Rows[i];
                    dr.Delete();
                }
                outInsuranceUsrDt.Merge(localdt);
            }
            catch (NullReferenceException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in deleteInsuranceUsrData" + ex.Message);
            }
            catch (ArrayTypeMismatchException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in deleteInsuranceUsrData" + ex.Message);
            }
            catch (Exception ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in deleteInsuranceUsrData" + ex.Message);
                throw;
            }
        }
 public void updateInsuranceUsrData(SqlLib lib, IDb db, object obj, ref DataTable outInsuranceUsrDt)
 {
     string sql = "";
     bool ret = true;
     try
     {
         InsuranceUsrInfo li = new InsuranceUsrInfo();
         ret = DataHandle.CompareObjectType(obj, li);
         if (ret)
         {
             li = (InsuranceUsrInfo)obj;
         }
         else
         {
             return;
         }
         if (outInsuranceUsrDt == null)
         {
             throw new NullReferenceException("outInsuranceUsrDt is null");
         }
         DataTable localDt = new DataTable();
         //根据Id更新一条数据信息
         sql = lib.GetSql("SqlInsuranceUsrInfo/InsuranceUsrInfo", "GetInsuranceUsrInfo");
         localDt = db.GetTable(sql);
         if (!string.IsNullOrEmpty(li.INSURANCE_USRID))
         {
             sql += " and INSURANCE_USRID='" + li.INSURANCE_USRID + "'";
             localDt = db.GetTable(sql);
             if (localDt.Rows.Count > 0)
             {
                 DataRow dr = localDt.NewRow();
                 dr["INSURANCE_USRID"] = DataHandle.EmptyString2DBNull(li.INSURANCE_USRID);
                 dr["Proportion"] = DataHandle.EmptyString2DBNull(li.Proportion);
                 dr["CRDT"] = DataHandle.EmptyString2DBNull(li.CRDT);
                 dr["CRUSR"] = DataHandle.EmptyString2DBNull(li.CRUSR);
                 dr["DSC"] = DataHandle.EmptyString2DBNull(li.DSC);
                 dr["IDCARDNO"] = DataHandle.EmptyString2DBNull(li.IDCARDNO);
                 dr["IDCARDTYPE"] = DataHandle.EmptyString2DBNull(li.IDCARDTYPE);
                 dr["IDPERIOD"] = DataHandle.EmptyString2DBNull(li.IDPERIOD);
                 dr["MDDT"] = DataHandle.EmptyString2DBNull(li.MDDT);
                 dr["MDUSR"] = DataHandle.EmptyString2DBNull(li.MDUSR);
                 dr["NAME"] = DataHandle.EmptyString2DBNull(li.NAME);
                 dr["POST"] = DataHandle.EmptyString2DBNull(li.POST);
                 dr["PROFESSION"] = DataHandle.EmptyString2DBNull(li.PROFESSION);
                 dr["SEX"] = DataHandle.EmptyString2DBNull(li.SEX);
                 outInsuranceUsrDt.Merge(localDt, true);
             }
         }
     }
     catch (NullReferenceException ex)
     {
         CTrace.WriteLine(CTrace.TraceLevel.Fail, "in updateOrderDetData" + ex.Message);
     }
     catch (ArrayTypeMismatchException ex)
     {
         CTrace.WriteLine(CTrace.TraceLevel.Fail, "in updateOrderDetData" + ex.Message);
     }
     catch (Exception ex)
     {
         CTrace.WriteLine(CTrace.TraceLevel.Fail, "in updateOrderDetData" + ex.Message);
         throw;
     }
 }
        public void addNewInsuranceUsrData(SqlLib lib, IDb db, object obj, ref DataTable outInsuranceUsrDt)
        {
            string sql = "";
            string localID = "";
            bool ret = false;
            try
            {
                InsuranceUsrInfo li = new InsuranceUsrInfo();
                ret = DataHandle.CompareObjectType(obj, li);
                if (ret)
                {
                    li = (InsuranceUsrInfo)obj;
                }
                else
                {
                    return;
                }
                if (outInsuranceUsrDt == null)
                {
                    throw new NullReferenceException("outInsuranceUsrDt is null");
                }
                DataTable localdt = new DataTable();
                sql = lib.GetSql("SqlInsuranceUsrInfo/InsuranceUsrInfo", "GetInsuranceUsrStructInfo");
                localdt = db.GetTable(sql);

                sql = lib.GetSql("SqlInsuranceUsrInfo/InsuranceUsrInfo", "GetNewInsuranceUsrId");
                DataTable dt = new DataTable();
                dt = db.GetTable(sql);
                if (dt.Rows.Count > 0)
                {
                    localID = dt.Rows[0][0].ToString();
                    dt.Reset();
                }
                if (string.IsNullOrEmpty(localID))
                {
                    return;
                }
                DataRow dr = localdt.NewRow();
                dr["INSURANCE_USRID"] = DataHandle.EmptyString2DBNull(localID);
                dr["Proportion"] = DataHandle.EmptyString2DBNull(li.Proportion);
                dr["CRDT"] = DataHandle.EmptyString2DBNull(li.CRDT);
                dr["CRUSR"] = DataHandle.EmptyString2DBNull(li.CRUSR);
                dr["DSC"] = DataHandle.EmptyString2DBNull(li.DSC);
                dr["IDCARDNO"] = DataHandle.EmptyString2DBNull(li.IDCARDNO);
                dr["IDCARDTYPE"] = DataHandle.EmptyString2DBNull(li.IDCARDTYPE);
                dr["IDPERIOD"] = DataHandle.EmptyString2DBNull(li.IDPERIOD);
                dr["MDDT"] = DataHandle.EmptyString2DBNull(li.MDDT);
                dr["MDUSR"] = DataHandle.EmptyString2DBNull(li.MDUSR);
                dr["NAME"] = DataHandle.EmptyString2DBNull(li.NAME);
                dr["POST"] = DataHandle.EmptyString2DBNull(li.POST);
                dr["PROFESSION"] = DataHandle.EmptyString2DBNull(li.PROFESSION);
                dr["SEX"] = DataHandle.EmptyString2DBNull(li.SEX);
                localdt.Rows.Add(dr);
                outInsuranceUsrDt.Merge(localdt, true);
            }
            catch (NullReferenceException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in addNewInsuranceUsrData" + ex.Message);
            }
            catch (ArrayTypeMismatchException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in addNewInsuranceUsrData" + ex.Message);
            }
            catch (Exception ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in addNewInsuranceUsrData" + ex.Message);
                throw;
            }
        }
        public List<OrderInfo> outOrderInfo(string queryString)
        {
            List<OrderInfo> localOrderInfo = new List<OrderInfo>();

            if (string.IsNullOrEmpty(queryString))
            {
                return localOrderInfo;
            }
            try
            {

                CTrace.WriteLine(CTrace.TraceLevel.Info, "Insurance outProductDetInfoSearch Search.");

                SqlLib lib = SpecialSqlLib.CreateLib();
                IDb db = DataManager.CreateDb();
                if (db != null)
                {
                    string sql = "";
                    string sqlInsuranceUsrInfo = "";

                    DataTable localInsuranceUsrInfodt = new DataTable();
                    /// 投保人 受益人 被保人 的sql
                    sqlInsuranceUsrInfo = lib.GetSql("SqlInsuranceUsrInfo/InsuranceUsrInfo", "GetInsuranceUsrInfo");

                    sql = lib.GetSql("SqlOrderInfo/OrderInfo", "GetOrderHistInfo");
                    sql = sql + queryString;


                    /// 保险人信息
                    InsuranceUsrInfo localInsuranceUsrInfo = new InsuranceUsrInfo();

                    CTrace.WriteLine(CTrace.TraceLevel.Info, "insurance.outOrderInfo sql={0}.", sql);
                    DataTable dt = db.GetTable(sql);

                    OrderInfo model = new OrderInfo();

                    foreach (DataRow row in dt.Rows)
                    {


                        if (row != null)
                        {
                            model = DataRowToOrderModel(row);
                            OrderDetInfo localOrderDetInfo = new OrderDetInfo();

                            DataTable dtOrderDetInfo = new DataTable();
                            sql = lib.GetSql("SqlOrderDetInfo/OrderDetInfo", "GetOrderDetInfo");
                            sql = string.Format(sql + " and orderid = '{0}' ", model.ORDERID);
                            dtOrderDetInfo = db.GetTable(sql);

                            foreach (DataRow rowDet in dtOrderDetInfo.Rows)
                            {
                                localOrderDetInfo = DataRowToOrderDetModel(rowDet);
                                model.ORDERDETINFO.Add(localOrderDetInfo);
                            }


                            /// 增加被保人信息

                            string sqlLSTINSURANT = string.Format(sqlInsuranceUsrInfo + " and insurance_usrid = '{0}' ", model.INSURANT);
                            localInsuranceUsrInfodt = db.GetTable(sqlLSTINSURANT);


                            if (localInsuranceUsrInfodt != null && localInsuranceUsrInfodt.Rows.Count > 0)
                            {
                                DataRow rowDet = localInsuranceUsrInfodt.Rows[0];
                                localInsuranceUsrInfo = DataRowToInsuranceUsrInfoModel(rowDet);
                                model.Insurant_usr = localInsuranceUsrInfo;
                            }



                            /// 收益人信息
                            InsuranceUsrInfo localBENEFICIARIES = new InsuranceUsrInfo();


                            string strBENEFICIARIES = "";
                            if (!string.IsNullOrEmpty(model.BENEFICIARIES))
                            {
                                strBENEFICIARIES = "'" + model.BENEFICIARIES + "'";
                            }
                            if (!string.IsNullOrEmpty(model.BENEFICIARIES2))
                            {
                                strBENEFICIARIES += ",'" + model.BENEFICIARIES2 + "'";
                            }
                            if (!string.IsNullOrEmpty(model.BENEFICIARIES3))
                            {
                                strBENEFICIARIES += ",'" + model.BENEFICIARIES3 + "'";
                            }
                            string sqlLstbeneficiaries = string.Format(sqlInsuranceUsrInfo + " and insurance_usrid in ({0}) ", strBENEFICIARIES);
                            localInsuranceUsrInfodt = db.GetTable(sqlLstbeneficiaries);

                            foreach (DataRow rowDet in localInsuranceUsrInfodt.Rows)
                            {
                                localInsuranceUsrInfo = DataRowToInsuranceUsrInfoModel(rowDet);
                                if (localInsuranceUsrInfo != null)
                                    model.Lstbeneficiaries.Add(localInsuranceUsrInfo);
                            }



                            /// 投保人信息
                            InsuranceUsrInfo localPOLICYHOLDER = new InsuranceUsrInfo();
                            string sqlLstpolicyholder = string.Format(sqlInsuranceUsrInfo + " and insurance_usrid = '{0}' ", model.POLICYHOLDER);
                            localInsuranceUsrInfodt = db.GetTable(sqlLstpolicyholder);


                            if (localInsuranceUsrInfodt != null && localInsuranceUsrInfodt.Rows.Count > 0)
                            {
                                DataRow rowDet = localInsuranceUsrInfodt.Rows[0];
                                localInsuranceUsrInfo = DataRowToInsuranceUsrInfoModel(rowDet);
                                model.Policyholder_usr = localInsuranceUsrInfo;
                            }


                            localOrderInfo.Add(model);

                        }
                    }

                    CTrace.WriteLine(CTrace.TraceLevel.Info, "insurance.outProductDetInfoSearch GetTable {0}.", sql);
                }


            }
            catch (FormatException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in outScmProviderInfoSearch Search" + ex.Message);
            }
            catch (ArgumentNullException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in outProductDetInfoSearch Search" + ex.Message);
            }
            catch (ArrayTypeMismatchException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in outProductDetInfoSearch Search" + ex.Message);
            }
            catch (BadImageFormatException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in outProductDetInfoSearch Search" + ex.Message);
            }
            catch (IndexOutOfRangeException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in outProductDetInfoSearch Search" + ex.Message);
            }
            catch (NullReferenceException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in outProductDetInfoSearch Search" + ex.Message);
            }
            catch (TimeoutException ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in outProductDetInfoSearch Search" + ex.Message);
            }
            catch (Exception ex)
            {
                CTrace.WriteLine(CTrace.TraceLevel.Fail, "in outProductDetInfoSearch Search" + ex.Message);
                throw;
            }

            return localOrderInfo;
        }