Beispiel #1
0
        public static void SetParamType(PgM.PgFieldM field, Interfaces.IParams param)
        {
            switch (field.Type)
            {
            case Rekod.DataAccess.AbstractSource.Model.EFieldType.Integer:
                param.type     = DbType.Int32;
                param.typeData = NpgsqlTypes.NpgsqlDbType.Integer;
                break;

            case Rekod.DataAccess.AbstractSource.Model.EFieldType.Date:
                param.type     = DbType.Date;
                param.typeData = NpgsqlTypes.NpgsqlDbType.Date;
                break;

            case Rekod.DataAccess.AbstractSource.Model.EFieldType.DateTime:
                param.type     = DbType.DateTime;
                param.typeData = NpgsqlTypes.NpgsqlDbType.TimestampTZ;
                break;

            case Rekod.DataAccess.AbstractSource.Model.EFieldType.Real:
                param.type     = DbType.Double;
                param.typeData = NpgsqlTypes.NpgsqlDbType.Numeric;
                break;

            default:
            case Rekod.DataAccess.AbstractSource.Model.EFieldType.Geometry:
            case Rekod.DataAccess.AbstractSource.Model.EFieldType.Text:
                param.type     = DbType.String;
                param.typeData = NpgsqlTypes.NpgsqlDbType.Text;
                break;
            }
        }
Beispiel #2
0
        public static void SetParamValue(Interfaces.IParams param, object value)
        {
            if (value == null || value.ToString() == "")
            {
                param.value = DBNull.Value;
                return;
            }
            DateTime datVal;
            int      intVal;
            double   doubVal;

            switch (param.typeData)
            {
            case NpgsqlTypes.NpgsqlDbType.Date:
            case NpgsqlTypes.NpgsqlDbType.TimestampTZ:
                if (value.ToString() == "")
                {
                    param.value = DBNull.Value;
                }
                else
                {
                    if (!DateTime.TryParse(value.ToString(), out datVal))
                    {
                        throw new Exception("Не удается преобразовать в дату: " + value);
                    }
                    param.value = DateTime.Parse(value.ToString());
                }
                break;

            case NpgsqlTypes.NpgsqlDbType.Integer:
                if (value.ToString() == "")
                {
                    param.value = DBNull.Value;
                }
                else
                {
                    if (!int.TryParse(value.ToString(), out intVal))
                    {
                        throw new Exception("Не удается преобразовать в целое: " + value);
                    }
                    param.value = int.Parse(value.ToString());
                }
                break;

            case NpgsqlTypes.NpgsqlDbType.Numeric:
                if (value.ToString() == "")
                {
                    param.value = DBNull.Value;
                }
                else
                {
                    if (!double.TryParse(value.ToString().Replace('.', ','), out doubVal))
                    {
                        throw new Exception("Не удается преобразовать в дробное: " + value);
                    }
                    param.value = double.Parse(value.ToString().Replace('.', ','));
                }
                break;

            case NpgsqlTypes.NpgsqlDbType.Text:
            default:
                param.value = value.ToString();
                break;
            }
        }