/// <summary>***Geri dönüş yapmayan procedureler için***<para /> /// ÇOK ÖNEMLİ NOT: OUTPUT OLMAYAN PARAMETRELERDE KESİNLİKLE DBTYPE GİRİLMEMELİ. DBTYPE OLANLAR SADECE OUTPUT PARAMETRELERİ<para /> /// TEKRAR TEKRAR AYNI DB NESNESI KULLANILACAKSA ARALARINDA FLUSHPARAMETRE() METODU KULLANILMALI <para /> /// outputs=> gerıye donen output parametreleri<para /> /// Ek-Not: Float==>Single ama Float değerleri doublela karsılamak gerekiyor nedense.<para /> /// </summary> public void SelectSP(string procadi, out List <Dparam> outputs, bool flush = true) { try { var p = new DynamicParameters(); using (IDbConnection _db = new SqlConnection(Helper.connectionstring())) { foreach (var item in parametreler) { p.Add(item.name, item.value); } foreach (var item in outputparametreler) { p.Add(item.name, dbType: item.dbtype, direction: ParameterDirection.Output); } _db.Query(procadi, p, commandType: System.Data.CommandType.StoredProcedure); outputs = new List <Dparam>(); foreach (var item in outputparametreler) { outputs.Add(Dparam.typecaster(p, item.dbtype, item.name)); } } } catch (Exception e) { throw; } finally { if (flush) { FlushParameter(); } } }
/// <summary>***!!!OUTPUTLU PROCLAR ICIN.!!!***<para /> /// Dönüş değeri generictir. outputs nesnesi geriye name-value ikilisi olarak output degerleri doner.<para /> /// ÇOK ÖNEMLİ NOT: OUTPUT OLMAYAN PARAMETRELERDE KESİNLİKLE DBTYPE GİRİLMEMELİ. DBTYPE OLANLAR SADECE OUTPUT PARAMETRELERİ<para /> /// TEKRAR TEKRAR AYNI DB NESNESI KULLANILACAKSA ARALARINDA FLUSHPARAMETRE() METODU KULLANILMALI <para /> /// Generic metod oldugu için tiplerin baştan belirtilmesi gerekir. <para /> /// outputs=> gerıye donen output parametreleri<para /> /// Ek-Not: Float==>Single ama Float değerleri doublela karsılamak gerekiyor nedense.<para /> /// </summary> public List <T> SelectSP <T>(string procadi, out List <Dparam> outputs, bool flush = true) { try { var p = new DynamicParameters(); List <T> donenliste = new List <T>(); using (IDbConnection _db = new SqlConnection(Helper.connectionstring())) { foreach (var item in parametreler) { p.Add(item.name, item.value); } foreach (var item in outputparametreler) { p.Add(item.name, dbType: item.dbtype, direction: ParameterDirection.Output); } var returner = _db.Query <T>(procadi, p, commandType: System.Data.CommandType.StoredProcedure); foreach (var item in returner) { donenliste.Add(item); } outputs = new List <Dparam>(); foreach (var item in outputparametreler) { outputs.Add(Dparam.typecaster(p, item.dbtype, item.name)); } } //double a = p.Get<double>("@BORC"); //double b = p.Get<double>("@ALACAK"); return(donenliste); } catch (Exception e) { throw; } finally { if (flush) { FlushParameter(); } } }