The main table is associated with the word table, and the main table is growing and inserted at the same time.

Source: Internet
Author: User
Method 1: Public static bool adjustleave (oaleaveinfo, dtable dtdetail, decimal region, string str_userid, string str_plantid, decimal dldours) {arraylist Al = new arraylist (); // backup original record string strsql = "insert into partition (origin_sid, user_id, dept_sid, pst_sid, date_from," + "date_to, lc_sid, reason, com_hour, al_day, rfs_sid, rf_sid, curr_node_no, curr_approver, "+" province, region, region, "+" create_person, create_date, update_person, update_date, adjust_person, adjust_date) "+" select Sid, user_id, dept_sid, pst_sid, date_from, "+" date_to, lc_sid, reason, com_hour, al_day, rfs_sid, rf_sid, curr_node_no, curr_approver, "+" region, "+" create_person, create_date, update_person, update_date, '"+ bllpubsafe. convertstring (oaleaveinfo. updateperson) + "'adjust_person," + "getdate () as adjust_date from oa_leave (nolock) where Sid = '" + oaleaveinfo. sid + "'"; Al. add (strsql); strsql = "insert into oa_leave_detail_origin (p_sid, origin_sid, origin_p_sid, no, leave_category, tick, leave_days," + "date_from, date_to, hours) "+" select (select scope_identity (), Sid, p_sid, no, leave_category, tick, leave_days, date_from, date_to, hours "+" from oa_leave_detail "+" where p_sid = '"+ oaleaveinfo. sid + "'"; Al. add (strsql); // original table stringbuilder sbsql = new stringbuilder (); sbsql. append ("Update oa_leave set date_from = '" + oaleaveinfo. datefrom + "',"); sbsql. append ("date_to = '" + oaleaveinfo. dateto + "',"); sbsql. append ("reason = '" + oaleaveinfo. reason + "',"); // sbsql. append ("lc_sid = '" + bllpubsafe. convertstring (oaleaveinfo. lcsid) + "',"); // sbsql. append ("com_hour = '" + oaleaveinfo. comhour + "',"); // sbsql. append ("al_day = '" + oaleaveinfo. alday + "'"); sbsql. append ("leave_total_days = '" + oaleaveinfo. leavetotaldays + "',"); sbsql. append ("leave_total_real_days = '" + oaleaveinfo. leavetotalrealdays + "',"); sbsql. append ("leave_total_hours = '" + oaleaveinfo. leavetotalhours + "'"); sbsql. append ("where Sid = '" + oaleaveinfo. sid + "'"); Al. add (sbsql. tostring (); // from the table if (dtdetail. rows. count> 0) {sbsql = new stringbuilder (); sbsql. append ("delete from oa_leave_detail where p_sid = '" + oaleaveinfo. sid + "'"). append ("delete from oa_compensative_detail where leave_sid = '" + oaleaveinfo. sid + "'"); Al. add (sbsql. tostring ();} dbhelpersql. executesqltran (Al); datatable dttemp = BLL. HR. bll_hrcommon.getcommtable ("select * From fn_oa_leave_left_timeaddmodifytep ('" + str_plantid + "', '" + bllpubsafe. convertstring (str_userid) + "')"); Using (sqlconnection conn = new sqlconnection (dbhelpersql. connectionstring) {Conn. open (); sqlcommand cmd = new sqlcommand (); cmd. connection = conn; sqltransaction Tx = Conn. begintransaction (); cmd. transaction = TX; try {// from the table for (INT I = 0; I <dtdetail. rows. count; I ++) {sbsql = new stringbuilder (); If (dl_olderyixiunianjia.tostring (). trim (). length> 0) {// dlhourday if (dtdetail. rows [I] ["no"]. tostring () = "C") {sbsql. append ("Update kq_empyearvac set vac_been = (vac_been +" + convert. todecimal (dtdetail. rows [I] ["leave_days"]. tostring () + "-" + dl_olderyixiunianjia + ") Where plant_id = '" + str_plantid + "' and vac_year = '" + datetime. now. year + "'and employee_id ='" + str_userid + "'"); cmd. commandtext = sbsql. tostring (); cmd. executenonquery ();} else if (I = 0) {sbsql. append ("Update kq_empyearvac set vac_been = (vac_been +" + 0 + "-" + dl_olderyixiunianjia + ") where plant_id = '"+ str_plantid +"' and vac_year = '"+ datetime. now. year + "'and employee_id ='" + str_userid + "'"); cmd. commandtext = sbsql. tostring (); cmd. executenonquery () ;}} if (dtdetail. rows [I] ["no"]. tostring () = "D") {sbsql. append ("insert oa_leave_detail (No, leave_category, tick, leave_days, date_from, date_to, p_sid, hours) values ("); sbsql. append ("'" + dtdetail. rows [I] ["no"]. tostring () + "',"); sbsql. append ("'" + dtdetail. rows [I] ["leave_category"]. tostring () + "',"); sbsql. append ("'" + convert. toint32 (dtdetail. rows [I] ["tick"]) + "',"); sbsql. append ("'" + convert. todecimal (dtdetail. rows [I] ["leave_days"]. tostring () + "',"); sbsql. append ("'" + dtdetail. rows [I] ["date_from"]. tostring () + "',"); sbsql. append ("'" + dtdetail. rows [I] ["date_to"]. tostring () + "',"); sbsql. append ("'" + oaleaveinfo. sid + "',"); sbsql. append ("'" + convert. todecimal (dtdetail. rows [I] ["hours"]. tostring () + "')"); // main table cmd. commandtext = sbsql. tostring (); cmd. executenonquery (); // obtain the ID cmd. commandtext = "select scope_identity ()"; string strmid = cmd. executescalar (). tostring (); decimal dltemp = 0; decimal dltemp1 = 0; dltemp1 = convert. todecimal (dtdetail. rows [I] ["leave_days"]. tostring () * dldours + convert. todecimal (dtdetail. rows [I] ["hours"]. tostring (); For (Int J = 0; j <dttemp. rows. count; j ++) {sbsql = new stringbuilder (); If (BLL. HR. bll_hrcommon.returndecimal (dttemp. rows [J] ["lefttime"]. tostring ()-dltemp1> 0) {sbsql. append ("insert oa_compensative_detail (overtime_sid, cps_sid, cps_hours, leave_sid) values ('" + dttemp. rows [J] ["Sid"]. tostring () + "','" + strmid + "','" + dltemp1 + "','" + oaleaveinfo. sid + "')"); cmd. commandtext = sbsql. tostring (); cmd. executenonquery (); break;} else {dltemp = BLL. HR. bll_hrcommon.returndecimal (dttemp. rows [J] ["lefttime"]. tostring (); If (dltemp1-dltemp> 0) {sbsql. append ("insert oa_compensative_detail (overtime_sid, cps_sid, cps_hours, leave_sid) values ('" + dttemp. rows [J] ["Sid"]. tostring () + "','" + strmid + "','" + dltemp + "','" + oaleaveinfo. sid + "')"); dltemp1 = dltemp1-dltemp; cmd. commandtext = sbsql. tostring (); cmd. executenonquery ();} else {sbsql. append ("insert oa_compensative_detail (overtime_sid, cps_sid, cps_hours, leave_sid) values ('" + dttemp. rows [J] ["Sid"]. tostring () + "','" + strmid + "','" + dltemp1 + "','" + oaleaveinfo. sid + "')"); cmd. commandtext = sbsql. tostring (); cmd. executenonquery (); break ;}}} else {sbsql = new stringbuilder (); sbsql. append ("insert oa_leave_detail (No, leave_category, tick, leave_days, date_from, date_to, p_sid, hours) values ("); sbsql. append ("'" + dtdetail. rows [I] ["no"]. tostring () + "',"); sbsql. append ("'" + dtdetail. rows [I] ["leave_category"]. tostring () + "',"); sbsql. append ("'" + convert. toint32 (dtdetail. rows [I] ["tick"]) + "',"); sbsql. append ("'" + convert. todecimal (dtdetail. rows [I] ["leave_days"]. tostring () + "',"); sbsql. append ("'" + dtdetail. rows [I] ["date_from"]. tostring () + "',"); sbsql. append ("'" + dtdetail. rows [I] ["date_to"]. tostring () + "',"); sbsql. append ("'" + oaleaveinfo. sid + "',"); sbsql. append ("'" + convert. todecimal (dtdetail. rows [I] ["hours"]. tostring () + "')"); cmd. commandtext = sbsql. tostring (); cmd. executenonquery () ;}} Tx. commit ();} catch (system. data. sqlclient. sqlexception e) {Tx. rollback (); throw new exception (E. message) ;}} return true;} Method 2: You can use create trigger truser_insert on tbuser for insert asselect @ identitygo to obtain the last identifier method 3: you can also set nocount on; insert into tbuser (a, B) values ("A", "B"); select @ identity; get ID

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.