Tag-Archive for » Oracle «

C# ile Sınırsız Html(ul,li) Menü (Recursive Functions)

En çok başımızı ağrıtan uygulamalardan birisi de sınırsız menü yapım işlemleridir.Dannyz arkadaşıma lazım olan bu menünün C# ile kodlanmış olan halini burda paylaşmak istiyorum.

Oracle veritabanı :

CREATE TABLE SINIRSIZ_MENU
(
  ID      INTEGER,--menü id
  ADI     VARCHAR2(20 BYTE) NOT NULL, -- menü adı
  UST_ID  INTEGER, -- menü üst id, eğer üst id yoksa değeri null olmalıdır
  URL VARCHAR(255) -- adres
)

C# kodları :

public string Sinirsizmenu(string pPrnt)
{
            var dbs = new VeritabaniBaglantiYap("thegkmnkc", "localhost", "****");
            var dt = dbs.SorguSonucu("select coalesce(M.UST_ID,0) ust_id,id,adi from sinirsiz_menu m order by m.id asc"); // DataTable
            var diziler = new Hashtable();
            var indArr = new int[dt.Rows.Count];
            for (var i = 0; i < dt.Rows.Count; i++)
            {
                var tmp = new Hashtable();
                tmp["baslik"] = dt.Rows[i]["ADI"].ToString();
                tmp["parent"] = dt.Rows[i]["UST_ID"].ToString();
                tmp["url"] = dt.Rows[i]["URL"].ToString();
                diziler[dt.Rows[i]["ID"].ToString()] = tmp;
                indArr[i] = Convert.ToInt32(dt.Rows[i]["ID"].ToString());
            }

            var hasChilds = false;
            var mnuStr = "";
            for (var i = 0; i < diziler.Count; i++)
            {
                var enm = (Hashtable)diziler[indArr[i].ToString()];
                var enim = enm.GetEnumerator(); //IDictionaryEnumerator
                enim.MoveNext();
                var anahtar = indArr[i].ToString();
                var baslik = enim.Value;
                enim.MoveNext();
                var prnt = enim.Value.ToString();
                enim.MoveNext();
                var url = enim.Value.ToString();

                if (pPrnt != prnt) continue;
                if (!hasChilds)
                {
                    hasChilds = true;
                    mnuStr += "<ul>";
                }
                mnuStr += "<li><a href="\">" + baslik + "</a>";
                mnuStr += Sinirsizmenu(anahtar);
                mnuStr += "<li>";
            }
            if (hasChilds)
                mnuStr += "</ul>";
            return mnuStr;
}

bu ilk hali, daha sonra optimizasyon yapıp yayınlayacağım yine burada, ancak istenilen yapıyı oluşturuyor şimdilik.

Toad For Oracle

 

    Oracle ile çalışan neredeyse herkes, Toad yazılımını bilir ve en az bir defa kullanmıştır. Programın ne kadar üstün olduğunu anlatmayacağım, bu konu altında yeri geldikçe kimsenin bilmediği özelliklerinden ve yeni sürümlerinin özelliklerinden bahsedeceğim.

   En sık kullandığım özelliği Auto Replace; eğer göreviniz benim gibi sadece sql sorguları yazmaktan ibaretse, “select * from” ifadesini yazmak sizin için bir eziyet halini alır, işte bu noktada çoğu editör de olduğu gibi Toadda da yer alan Auto-Replace özelliği sizi bu dertten kurtaracaktır. Tanımlayacağınız alias ile en çok kullandığınız sorguları bir iki tuşa basarak kolayca yazabilirsiniz. Bu özellik Toad programında View->Toad Options Menüsünü açtıktan sonra Editor->Behavior alt menüsü altındadır. Yine Toad kullananlar bilirler Toad Options ekranında “Auto-Replace” diye arattığınızda da kolayca erişebilirsiniz.