c#+Oracle添加表记录(表的关键字是自增值) 然后取得其关键字
为某个表建立序列
create sequence seq_pordms
increment by 1
start with 1
nomaxvalue
nocycle;
为某个表新增动作,建立触发器
create or replace trigger t_pordms_id
before insert on pur_pordms_test
for each row
begin
select seq_pordms.nextval into :new.pordms_id from dual;
end;
在c#开发环境中插入一行,并取得插入行的关键字值.(使用:序列.currval和executescalar)
string commstr = "insert into pur_pordms_test(pordms_no,com_id,addr)" +
" values(:pordms_no,:com_id,:addr)";
string seqstr = "select seq_pordms.currval from dual";
OracleConnection conn = new OracleConnection(connstr);
OracleCommand comm = new OracleCommand(commstr, conn);
comm.Parameters.AddWithValue(":pordms_no", pordms_no.Text);
comm.Parameters.AddWithValue(":com_id", company.SelectedValue);
comm.Parameters.AddWithValue(":addr", addr.Text);
conn.Open();
comm.ExecuteNonQuery();
comm = new OracleCommand(seqstr, conn);
string s = comm.ExecuteScalar().ToString();//取得当前sequence值
conn.Close();