Kafayı Yedirtecek Asp.Net Sorunu
-
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
