예제 #1
0
        public void AddField(string fieldname, object value, FieldType fieldtype, Type keyInitializerType, bool isChanged)
        {
            if (!_selectFields.Contains(fieldname))
            {
                _selectFields.Add(fieldname);
            }

            if (fieldtype == FieldType.KeyField)
            {
                if (value == null)
                {
                    _whereClausel.Add(string.Format("{0} IS NULL", fieldname));
                }
                else
                {
                    SqliteParameter param = DataBaseProvider.GetParameter($"@param{_parameters.Count}", value);
                    _whereClausel.Add($"{fieldname} = {param.ParameterName}");
                    _parameters.Add(param);
                }
            }
            else if (isChanged && (fieldtype == FieldType.WriteableField || fieldtype == FieldType.UpdateableField) && !_setValues.ContainsKey(fieldname))
            {
                if (value == null)
                {
                    _setValues.Add(fieldname, "NULL");
                }
                else
                {
                    SqliteParameter param = DataBaseProvider.GetParameter($"@param{_parameters.Count}", value);
                    _setValues.Add(fieldname, param.ParameterName);
                    _parameters.Add(param);
                }
            }
        }
        private DbParameter AddDbParameter(object value)
        {
            DbParameter returnValue = DataBaseProvider.GetParameter($"@param{_databaseProvider.GetUniqe()}", value);

            _parameters.Add(returnValue);
            return(returnValue);
        }
예제 #3
0
 public void AddField(string fieldname, object value, FieldType fieldtype, Type keyInitializerType, bool isChanged)
 {
     if (fieldtype == FieldType.KeyField)
     {
         SqliteParameter param = DataBaseProvider.GetParameter($"@param{_parameters.Count}", value);
         _whereClausel.Add($"{fieldname} = {param.ParameterName}");
         _parameters.Add(param);
     }
 }
        public void AddField(string fieldname, object value, FieldType fieldtype, Type keyInitializerType, bool isChanged)
        {
            if (!_selectFields.Contains(fieldname))
            {
                _selectFields.Add(fieldname);
            }

            if (_insertFields.Contains(fieldname))
            {
                return;
            }

            if (fieldtype == FieldType.KeyField)
            {
                KeyInitializer keyInitializer = keyInitializerType != null?KeyInitializer.GetInitializer(keyInitializerType) : null;

                if (keyInitializer == null || !keyInitializer.CheckEmpty(value))
                {
                    SqliteParameter param = DataBaseProvider.GetParameter($"@param{_parameters.Count}", value);
                    _insertFields.Add(fieldname);
                    _insertValues.Add(param.ParameterName);
                    _whereClausel.Add(string.Format("{0} = {1}", param.ParameterName, fieldname));
                    _parameters.Add(param);
                }
                else
                {
                    _whereClausel.Add(keyInitializer.GetWhereClause(fieldname, _tablename));
                }
            }
            else if (fieldtype == FieldType.WriteableField || fieldtype == FieldType.InsertableField)
            {
                if (value == null)
                {
                    _insertFields.Add(fieldname);
                    _insertValues.Add("NULL");
                }
                else
                {
                    SqliteParameter param = DataBaseProvider.GetParameter($"@param{_parameters.Count}", value);
                    _insertFields.Add(fieldname);
                    _insertValues.Add(param.ParameterName);
                    _parameters.Add(param);
                }
            }
        }