sequence就是一个序列,你每次执行 select CASE_SEQ.nextval from dual 的时候都会返回唯一的一个ID号,因此你可以先执行这个select取到这个ID,如果这个时候有多个用户在执行这个操作,那么他们select到的ID绝对跟你的不一样(sequence就是保证这一点的)。然后你就可以用这个ID插入记录,然后再返回这个ID就OK了。 代码: string sql = "Select CASE_SEQ.currval from dual"; OracleConnection conn = DB.getCon(); OracleCommand cmd = conn.CreateCommand(); conn.Open(); string returnID = null; cmd.CommandText = sql; returnID = Convert.ToString(cmd.ExecuteScalar()); //获取ID sql = "insert into PATIENT_T(pid,name) values(returnID,'黎明')"; //将ID插入数据库 cmd.CommandText = sql; cmd.ExecuteNonQuery(); conn.Close(); 结束了,差不多就是这样,楼主自己调试一下就行了,注意ID在数据库中应该是varcahr类型的