Write-Ֆունկցիան՝

Մի փոքր պարզաբանեմ՝
Սկսում ենք հերթով համեմատել ըստ սյուների հին արժեքը և նոր արժեքը, եթե տարբեր են ապա մեր կազմած հարցման մեջ ավելացնում ենք
դրա SET-ը։
Եթե աղյուսակի մեջ մեր SetID-ի արած ID-ն կար, այսինքն այդ տողը գոյություն ուներ ապա հարցումը կազմվում է, որպես UPDATE, եթե ոչ ապա INSERT:
Նրբություն, քանի որ այդ արժեքները գալիս են user-ից հնարավոր Injection-ից խուսափելու համար հարկավոր է, որպեսզի արժեքները որպես պարամետր փոխանցենք հարցմանը։ Դրա համար երբ արդեն իմանում ենք տարբերվող սյուների քանակը(N), մեր հարցմանը ավելացնում ենք param1,param2,...paramN, և զուգահեռաբար զանգված ենք ստեղծում, որի էլեմենտների ինդեկսները համընկնում են param1, param2, param3-ի․․․․ հետ։
Կոդի հատված՝
Կոդ:
foreach (KeyValuePair<string, string> entry in this.cCurrentRec) {
if (entry.Value != this.cPhysicalRec[entry.Key]) {
tmpExistQueryValuesAssig += entry.Key + " = @param" + tmpCountOfCols.ToString() + ",";
tmpValues[tmpCountOfCols] = entry.Value;
tmpCountOfCols++;
}
}
Իսկ վերջում, երբ արդեն պարզ է թե հարցումը INSERT INTO է, թե UPDATE, ավելացնում ենք արժեքները՝
Կոդի հատված՝
Կոդ:
for (int i = 0; i < tmpCountOfCols; i++) {
tmpSqlCommand.Parameters.AddWithValue("@param" + i.ToString(), tmpValues[i]);
}
Հաջորդ գրառումը կլինի սյուների validation—ների կազմակերպան մասին, որից հետո կամփոփենք ունեցածը, որպեսզի շարժվենք առաջ։
Էջանիշներ