Задача состоит в записи параметров в таблицу. Не выходит записать по неизвестной причине.
protected void ODS_Systems_Inserting(object sender, ObjectDataSourceMethodEventArgs e)
{
object ctrl = gvSystems.FindEditRowCellTemplateControl((GridViewDataColumn)gvSystems.Columns["namehead"], "idPos");
object val = ctrl.GetType().InvokeMember("Value", System.Reflection.BindingFlags.GetProperty, null, ctrl, null);
NpgsqlParameter[] pgsqlParams = { new NpgsqlParameter("p_msys_id", NpgsqlDbType.Integer),
new NpgsqlParameter("p_msys_name", e.InputParameters["msys_name"]),
new NpgsqlParameter("p_og_facility_id", NpgsqlDbType.Bigint),
new NpgsqlParameter("p_dep_id", NpgsqlDbType.Bigint),
new NpgsqlParameter("p_msys_assignment_id", NpgsqlDbType.Smallint),
new NpgsqlParameter("p_msys_status_id", NpgsqlDbType.Smallint),
new NpgsqlParameter("p_msys_kind_id", NpgsqlDbType.Smallint),
new NpgsqlParameter("p_op_id", NpgsqlDbType.Smallint),
new NpgsqlParameter("p_commissioning_date", NpgsqlDbType.Date),
new NpgsqlParameter("p_msys_type", NpgsqlDbType.Smallint),
new NpgsqlParameter("p_id_state", NpgsqlDbType.Integer)
};
pgsqlParams[0].Direction = ParameterDirection.InputOutput;
pgsqlParams[0].Value = e.InputParameters["p_msys_id"];
pgsqlParams[2].Value = val;
pgsqlParams[3].Value = e.InputParameters["p_og_facility_id"];
pgsqlParams[4].Value = e.InputParameters["p_dep_id"];
pgsqlParams[5].Value = e.InputParameters["p_msys_assignment_id"];
pgsqlParams[6].Value = e.InputParameters["p_msys_status_id"];
pgsqlParams[7].Value = e.InputParameters["p_msys_kind_id"];
pgsqlParams[8].Value = e.InputParameters["p_msys_type smallint"];
pgsqlParams[9].Value = e.InputParameters["p_op_id"];
pgsqlParams[10].Value = e.InputParameters["p_commissioning_date"];
pgsqlParams[11].Value = e.InputParameters["p_msys_type"];
pgsqlParams[12].Value = e.InputParameters["p_id_state"];
e.InputParameters.Clear();
e.InputParameters["pgsqlParams"] = pgsqlParams;
e.InputParameters["pgsqlProc"] = Resources.PgSQLResources.AddMSQQ;
}
Код на PostgreSQL:
CREATE OR REPLACE FUNCTION metrolog.pmsystems_add_msystem_qq(p_user_name character varying, INOUT p_msys_id integer, p_msys_name character varying, p_og_facility_id bigint, p_dep_id bigint, p_msys_assignment_id smallint, p_msys_status_id smallint, p_msys_kind_id smallint, p_op_id smallint, p_commissioning_date TIMESTAMP WITHOUT TIME ZONE, p_msys_type smallint, p_id_state integer) RETURNS integer LANGUAGE PLPGSQL AS $function$
DECLARE
v_user_id integer;
BEGIN
v_user_id := paudit_getapuserid(p_user_name);
IF p_msys_id IS NOT NULL THEN
UPDATE skynet.measuring_systems
set msys_name = p_msys_name
,og_facility_id = p_og_facility_id
,dep_id = p_dep_id
,msys_assignment_id = p_msys_assignment_id
,msys_status_id = p_msys_status_id
,msys_kind_id = p_msys_kind_id
,op_id = p_op_id
,commissioning_date = p_commissiong_date
,msys_type = p_msys_type
,id_state = p_id_state
WHERE msys_id = p_msys_id;
ELSE
INSERT INTO skynet.measuring_systems
( msys_id
, msys_name
, og_facility_id
, dep_id
, msys_assignment_id
, msys_status_id
, msys_kind_id
, op_id
, commissioning_date
, msys_type
, id_state
)
VALUES
( nextval('skynet.s_measuring_systems')
, p_msys_name
, p_og_facility_id
, p_dep_id
, p_msys_assignment_id
, p_msys_status_id
, p_msys_kind_id
, p_op_id
, p_commissioning_date
, p_msys_type
, p_id_state
)
RETURNING msys_id INTO p_msys_id;
END IF;
EXCEPTION
WHEN others THEN
perform error_handler(p_user_name,'pmsystems','pmsystems_add_msystem_qq',sqlstate, sqlerrm);
END;
$function$
Выходит ошибка:
NullReferenceException Ссылка на объект не указывает на экземпляр объекта.
Как разобраться с пресловутой ссылкой на объект?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости