Beispiel #1
0
        public string GetBindFields(object _obj, ORMWork.DataBaseOpTypes _DataBaseOpTypes)
        {
            string result;

            try
            {
                StringBuilder stringBuilder = new StringBuilder();
                if (_obj == null)
                {
                    throw new Exception("GetBindFields:实体对象为空!");
                }
                for (int i = 0; i < _obj.GetType().GetProperties().Length; i++)
                {
                    PropertyInfo propertyInfo = _obj.GetType().GetProperties()[i];
                    if (propertyInfo.GetCustomAttributes(true) == null || propertyInfo.GetCustomAttributes(true)[0] == null)
                    {
                        throw new Exception("GetBindFields:实体对象中属性没有映射到表中的列!");
                    }
                    BindFieldAttribute bindFieldAttribute = propertyInfo.GetCustomAttributes(true)[0] as BindFieldAttribute;
                    if (!(bindFieldAttribute.Name.Trim() == string.Empty))
                    {
                        if (_DataBaseOpTypes != ORMWork.DataBaseOpTypes.Insert || (!(bindFieldAttribute.DefaultValue.ToUpper() == "SYS_GUID()") && !(bindFieldAttribute.DefaultValue.ToUpper() == "SYSDATE") && !(bindFieldAttribute.DefaultValue.ToLower() == "newid()") && !(bindFieldAttribute.DefaultValue.ToLower() == "getdate()")))
                        {
                            if (ORMWork.DataBaseOpTypes.Update != _DataBaseOpTypes || (!bool.Parse(bindFieldAttribute.Key.ToString()) && !(bindFieldAttribute.Name.ToUpper() == "ID") && !(bindFieldAttribute.Name.ToUpper() == "INPUTEMPID") && !(bindFieldAttribute.Name.ToUpper() == "INPUTTIME")))
                            {
                                if (ORMWork.DataBaseOpTypes.Delete != _DataBaseOpTypes)
                                {
                                    if (stringBuilder.Length > 0)
                                    {
                                        stringBuilder.Append(",");
                                    }
                                    stringBuilder.Append(bindFieldAttribute.Name.Trim());
                                }
                            }
                        }
                    }
                }
                result = stringBuilder.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(result);
        }
Beispiel #2
0
 public DbParameter[] CreateParameters(object _obj, ORMWork.DataBaseOpTypes _DataBaseOpTypes, out string _fieldpars, out string _where)
 {
     DbParameter[] result;
     try
     {
         _fieldpars = "";
         _where     = "";
         string             text = "";
         List <DbParameter> list = new List <DbParameter>();
         if (_obj == null)
         {
             throw new Exception("CreateParameters:实体对象为空");
         }
         list.Clear();
         for (int i = 0; i < _obj.GetType().GetProperties().Length; i++)
         {
             BindFieldAttribute anBindFieldAttributeByFieldName = this.GetAnBindFieldAttributeByFieldName(_obj, _obj.GetType().GetProperties()[i].Name);
             if (_DataBaseOpTypes != ORMWork.DataBaseOpTypes.Insert || (!(anBindFieldAttributeByFieldName.DefaultValue.ToUpper() == "SYS_GUID()") && !(anBindFieldAttributeByFieldName.DefaultValue.ToUpper() == "SYSDATE") && !(anBindFieldAttributeByFieldName.DefaultValue.ToLower() == "newid()") && !(anBindFieldAttributeByFieldName.DefaultValue.ToLower() == "getdate()")))
             {
                 if (_DataBaseOpTypes != ORMWork.DataBaseOpTypes.Insert || (!(anBindFieldAttributeByFieldName.DefaultValue.ToUpper() == "SYS_GUID()") && !(anBindFieldAttributeByFieldName.DefaultValue.ToUpper() == "SYSDATE") && !(anBindFieldAttributeByFieldName.DefaultValue.ToLower() == "newid()") && !(anBindFieldAttributeByFieldName.DefaultValue.ToLower() == "getdate()")))
                 {
                     if (ORMWork.DataBaseOpTypes.Update == _DataBaseOpTypes && (bool.Parse(anBindFieldAttributeByFieldName.Key.ToString()) || anBindFieldAttributeByFieldName.Name.ToUpper() == "ID"))
                     {
                         if (text.Trim() != "")
                         {
                             text += " AND ";
                         }
                         text = anBindFieldAttributeByFieldName.Name + "=@" + anBindFieldAttributeByFieldName.Name;
                         list.Add(this.CreateAnParameter(anBindFieldAttributeByFieldName));
                     }
                     else
                     {
                         if (ORMWork.DataBaseOpTypes.Delete == _DataBaseOpTypes && (bool.Parse(anBindFieldAttributeByFieldName.Key.ToString()) || anBindFieldAttributeByFieldName.Name.ToUpper() == "ID"))
                         {
                             if (text.Trim() != "")
                             {
                                 text += " AND ";
                             }
                             text = anBindFieldAttributeByFieldName.Name + "=@" + anBindFieldAttributeByFieldName.Name;
                             list.Add(this.CreateAnParameter(anBindFieldAttributeByFieldName));
                             break;
                         }
                         if (_fieldpars.Trim() != "")
                         {
                             _fieldpars += ",";
                         }
                         _fieldpars = _fieldpars + "@" + anBindFieldAttributeByFieldName.Name;
                         list.Add(this.CreateAnParameter(anBindFieldAttributeByFieldName));
                     }
                 }
             }
         }
         if (text != "")
         {
             text = " WHERE " + text;
         }
         _where = text;
         result = list.ToArray <DbParameter>();
     }
     catch (Exception ex)
     {
         throw ex;
     }
     return(result);
 }