Aşağıdaki kod bloku ile QG ile nasıl veri çekilebileceği gösterilmiştir:
var gen = QueryGeneratorFactory.GetDbObject(); var db = DatabaseFactory.GetDbObject(); string sql = "select * from employees where employee_id = :ID"; gen.SelectText = sql; gen.AddFilterParameter("ID", 100); var dt = db.ExecuteQueryDataTable(gen.GetSelectCommandBasic());
Yukarıdaki örnekte görüldüğü üzere ":ID" parametresi ile bir filterparameter oluşrulmuş ve 100 id numaralı kişinin bilgileri çekilmiştir.
QG ile Update ve Insert işlemleri de kolaylıkla yapılabilmektedir. Aşağıdaki kod bloğunda 101 id numaralı kişinin bilgileri güncellenmiştir:
var db = DatabaseFactory.GetDbObject(); var gen = QueryGeneratorFactory.GetDbObject(); gen.TableName = "EMPLOYEES"; gen.AddDataParameter("FIRST_NAME", "VELI YIGIT"); gen.AddDataParameter("LAST_NAME", "YOLCU"); gen.AddFilterParameter("Param1", 101); gen.FilterText = "WHERE employee_id = :Param1"; db.ExecuteQuery(gen.GetUpdateCommand());
Yukarıdaki kod bloğundan anlaşıldığı üzere sadece değiştirilecek alanların parametre olarak eklenmesi yeterlidir. Gerekli update komutu QG tarafından oluşturulmaktadır. Burada dikkat edilmesi gereken nokta filtre içinde yer alan parametreler "FilterParameter" olarak eklenmelidir.
QG ile Insert işlemi aşağıdaki gibi yapılabilmektedir:
var db = DatabaseFactory.GetDbObject(); var gen = QueryGeneratorFactory.GetDbObject(); gen.TableName = "EMPLOYEES"; gen.AddDataParameter("EMPLOYEE_ID", "300"); gen.AddDataParameter("FIRST_NAME", "VELI YIGIT"); gen.AddDataParameter("LAST_NAME", "YOLCU"); gen.AddDataParameter("EMAIL", "vyigity@deneme.com"); gen.AddDataParameter("HIRE_DATE", new DateTime(2017,10,14)); gen.AddDataParameter("JOB_ID", "SH_CLERK"); db.ExecuteQuery(gen.GetInsertCommand());
Update komutuna benzer olarak Insert komutunda da eklenecek alanların DataParameter olarak eklenmesi yeterlidir.
"Bu yazıda "Oracle Managed Provider", Oracle 11g Express Edition ve HR şeması test verileri kullanılmıştır."
"https://github.com/vyigity/ProjectBase"
No comments:
Post a Comment