Öncelikle SqlCeTransaction nesnesini kullanacağımız public methodları (begin, commit, rollback) static sınıfımıza ekleyelim, sınıfımızın son durumunu class diagram üzerinde görelim.
private static SqlCeConnection conn;
try {
if (conn != null) {trans = conn.BeginTransaction();
}}
catch (Exception) {throw;
}}
try {
if (trans != null) {trans.Commit();
trans.Dispose();trans = null;
}}
catch (Exception) {throw;
}}
try {
if (trans != null) {trans.Rollback();
trans.Dispose();trans = null;
}}
catch (Exception) {throw;
}}
var rowsAffected = 0;
try {using (var cmd = new SqlCeCommand()) {
cmd.Connection = conn;cmd.CommandText = sql;
if (parameters != null && parameters.Length != 0) {bindParametersToSqlCe(parameters, cmd);
}//Transaction null değil ise (BeginTransaction methodu ile başlatılmış)
//command nesnesinin Transaction property'si set edilir.
if (trans != null) {cmd.Transaction = trans;
}rowsAffected = cmd.ExecuteNonQuery();
}
}catch (SqlCeException ex) {
ShowErrors(ex);}
return rowsAffected;}
public static object ExecuteScalerText(string sql, MyCeParameter[] parameters) {
object result = null;
try {using (SqlCeCommand cmd = new SqlCeCommand()) {
cmd.Connection = conn;cmd.CommandText = sql;
if (parameters != null && parameters.Length != 0) {bindParametersToSqlCe(parameters, cmd);
}
//Transaction null değil ise (BeginTransaction methodu ile başlatılmış)
//command nesnesinin Transaction property'si set edilir.if (trans != null) {
cmd.Transaction = trans;}
result = cmd.ExecuteScalar();}}
catch (SqlCeException ex) {ShowErrors(ex);
}catch (Exception ex) {
ShowPdaMessage.ShowException(ex);}
return result;}
try {
// Transaction başlatılıyor..
SqlCompactDatabase.BeginTransaction();
const string sql = "insert into URUN(KODU,ADI) values(@p1,@p2) ";MyCeParameter kodu = new MyCeParameter("@p1", 1, ParameterDirection.Input);
MyCeParameter adi = new MyCeParameter("@p2", "Vida", ParameterDirection.Input);SqlCompactDatabase.ExecuteNonQuery(sql, kodu,adi);
const string sqlDetail = "insert into URUN_DETAY(URUN_KODU,DETAY,RENK) values(@p1,@p2,@p3) ";
MyCeParameter urun_kodu = new MyCeParameter("@p1", 1, ParameterDirection.Input);MyCeParameter detay_bilgi = new MyCeParameter("@p2", "3 mm", ParameterDirection.Input);
MyCeParameter renk = new MyCeParameter("@p3", "Siyah", ParameterDirection.Input);SqlCompactDatabase.ExecuteNonQuery(sqlDetail, urun_kodu, detay_bilgi, renk );
//Transaction Commit ediliyor.SqlCompactDatabase.CommitTransaction();
}catch (Exception) {
//Eğer hata oluşur ve transaction başlatılmış ise geri alınır.SqlCompactDatabase.RollBackTransaction();
throw;}
}
Hiç yorum yok:
Yorum Gönder