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();

 

posted @ 2010-01-06 16:07  PROS  阅读(791)  评论(0)    收藏  举报