folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Kafayı Yedirtecek Asp.Net Sorunu



Kafayı Yedirtecek Asp.Net Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Katmanlı mimari (DAL, BL vs.. katmanların olduğu) yapısında projem mevcut. Gel gelelim ki zıkkım olasıca bazen hata veriyor (Her zaman değil.)

    1. Hata

    Procedure or function SP_Icerikler has too many arguments specified

    2. Hata

    the connection close (bağlantı kapalı hatası)

     

    Ya cidden sıkıntı verdi bu meret

    Katmanı yazayım buraya

    List<SqlParameter> spParametreler = new List<SqlParameter>();
            public void fnIn_Parametreleri_Ekle(String pnParametre_Adi, DbType dtParametre_Tipi, object objDeger)
            {
                SqlParameter spParametre = new SqlParameter();
                spParametre.ParameterName = pnParametre_Adi;
                spParametre.DbType = dtParametre_Tipi;
                spParametre.Value = objDeger;
                spParametreler.Add(spParametre);
            }
            public void fnOut_Parametreleri_Ekle(String pnParametre_Adi, DbType dtParametre_Tipi)
            {
                SqlParameter spParametre = new SqlParameter();
                spParametre.ParameterName = pnParametre_Adi;
                spParametre.DbType = dtParametre_Tipi;
                spParametre.Direction = ParameterDirection.Output;
                spParametreler.Add(spParametre);
            }
            public object fnParametre_Degerini_Getir(String strParametre)
            {
                foreach (SqlParameter spParametre in spParametreler)
                {
                    if (spParametre.ParameterName == strParametre)
                    {
                        return spParametre.Value;
                    }
                }
                return null;
            }
            private SqlConnection fnBaglanti()
            {
                SqlConnection scBaglanti = new SqlConnection(ConfigurationManager.AppSettings["mssqlDB"]);
                return scBaglanti;
            }
            public Int32 fnExecute_Non_Query_Yap(String strSorgu, CommandType ctKomut_Tipi)
            {
                SqlConnection scBaglanti = fnBaglanti();
                using (SqlCommand scKomut = new SqlCommand(strSorgu, scBaglanti))
                {
                    scKomut.CommandType = ctKomut_Tipi;
                    if (spParametreler != null)
                    {
                        foreach (SqlParameter p in spParametreler)
                        {
                            scKomut.Parameters.Add(p);
                        }
                    }
                    scBaglanti.Open();
                    return scKomut.ExecuteNonQuery();
                    scKomut.Parameters.Clear();
                }
            }
            public IDataReader fnExecute_Reader_Yap(String strSorgu, CommandType ctKomut_Tipi)
            {
                SqlConnection scBaglanti = fnBaglanti();
                using (SqlCommand scKomut = new SqlCommand(strSorgu, scBaglanti))
                {
                    scKomut.CommandType = ctKomut_Tipi;
                    if (spParametreler != null)
                    {
                        foreach (SqlParameter p in spParametreler)
                        {
                            scKomut.Parameters.Add(p);
                        }
                    }
                    scBaglanti.Open();
                    return scKomut.ExecuteReader(CommandBehavior.CloseConnection);
                    scKomut.Parameters.Clear();
                }
            }

    Veri ekleyen bir katmanı buraya yazayım. İletişim mesajını veritabanına kaydeden yer.

            public Int32 fnIletisim_Ekle(Iletisim_EF I)
            {
                fnParametreleri_Temizle();
                fnIn_Parametreleri_Ekle("@strAd_Soyad", DbType.String, I.ad_soyad);
                fnIn_Parametreleri_Ekle("@strE_Posta", DbType.String, I.e_posta);
                fnIn_Parametreleri_Ekle("@strMesaj", DbType.String, I.mesaj);
                fnIn_Parametreleri_Ekle("@strIp", DbType.String, I.ip);
                fnIn_Parametreleri_Ekle("@strTarayici_Bilgileri", DbType.String, I.tarayici_bilgileri);
                fnOut_Parametreleri_Ekle("@intSonuc", DbType.Int32);
                fnExecute_Non_Query_Yap("SP_Iletisim_Ekle", CommandType.StoredProcedure);
                Int32 intSonuc = (Int32)fnParametre_Degerini_Getir("@intSonuc");
                fnParametreleri_Temizle();
                return intSonuc;
            }

    Veri getiren bir katman

            public Iletisim_EF fnIletisim_Getir(Int32 intIletisim_ID, Int16 intYayin_Durumu)
            {
                Iletisim_EF iEF = new Iletisim_EF();
                vt.fnParametreleri_Temizle();
                vt.fnIn_Parametreleri_Ekle("@intIletisim_ID", DbType.Int32, intIletisim_ID);
                vt.fnIn_Parametreleri_Ekle("@intYayin_Durumu", DbType.Int16, intYayin_Durumu);
                IDataReader dr = vt.fnExecute_Reader_Yap("SP_Iletisim_Getir", CommandType.StoredProcedure);
                if (dr.Read() == true)
                {
                    iEF.iletisim_ID = (Int32)dr["iletisim_ID"];
                    iEF.ad_soyad = dr["ad_soyad"].ToString();
                    iEF.e_posta = dr["e_posta"].ToString();
                    iEF.mesaj = dr["mesaj"].ToString();
                    iEF.ip = dr["ip"].ToString();
                    iEF.tarayici_bilgileri = dr["tarayici_bilgileri"].ToString();
                    iEF.eklenme_tarihi = (DateTime)dr["eklenme_tarihi"];
                    iEF.yayin_durumu = (Byte)dr["yayin_durumu"];
                }
                dr.Close();
                dr.Dispose();
                vt.fnParametreleri_Temizle();
                return iEF;
            }

    Entity katmanı

        public class Iletisim_EF
        {
            public Int32 iletisim_ID { get; set; }
            public String ad_soyad { get; set; }
            public String e_posta { get; set; }
            public String mesaj { get; set; }
            public String ip { get; set; }
            public String tarayici_bilgileri { get; set; }
            public DateTime eklenme_tarihi { get; set; }
            public Int16 yayin_durumu { get; set; }
        }

     

     


    Böyle bir yapı var. Bağlantı da mı sorun var yoksa başka zıkkımda mı?

    Sizin örnekleriniz mevcut mu?

     

    ontedi tarafından 03/Oca/16 00:01 tarihinde düzenlenmiştir

    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
Toplam Hit: 653 Toplam Mesaj: 1
asp.net katmanlı mimari nlayer tier