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; } }
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; } }