Beispiel #1
0
 /// <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();
         }
     }
 }
Beispiel #2
0
        /// <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();
                }
            }
        }