Osman KURT

Kendime Not

ASP.Net ve Linq Kullanımı

Arkadaşlar bu yazımda size asp.net linq mimarisinde ekleme silme güncelleme ve verileri görüntülemeyi gösterecğim.

Projemiz de kullanacağımız veri tabanımız;

 

İsterseniz ilk olarak bir web projesi oluşturalım ve açtığımız projeye visual stdio da sağ tıklayıp new ıtem diyerek Linq to SQL Classes ekliyoruz. Açılan pencereye veri tabanımızda ki abloları çekiyoruz. İşlemlerde kullanıcağımız tabloların tamamının burda olması gerekmektedir.

Şimdi bu işlemleri yaptıkdan sonr işlemlerimizi geçelim ilk olarak veri tabanımıza ekleme yapmayı öğrenelim isterseniz;

KayitEkle.aspx sayfamızı aşşağıdaki gibi tasarlayalım lütfen.

<table style="width:100%;">
<tr>
<td class="style1">
<asp:Label ID="Label1" runat="server" Text="Adınız Soyadınız"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtAdSoyad" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
<asp:Label ID="Label2" runat="server" Text="Kullanıcı Adınız"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtKullaniciAdi" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
<asp:Label ID="Label3" runat="server" Text="Şifre"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtSifre" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
&nbsp;</td>
<td>
<asp:Button ID="btnKaydet" runat="server" onclick="btnKaydet_Click"
Text="Kaydet" />
</td>
</tr>
</table>

Bu kodlarımızı yazdıktan onra şimdi cs kodlarımıza geçelim;


OsmkrtDataContext Osm = new OsmkrtDataContext();
Kullanicilar KullaniciInsert = new Kullanicilar
{
AdSoyad = txtAdSoyad.Text,
KullaniciAdi = txtKullaniciAdi.Text,
Sifre = txtSifre.Text
};
Osm.Kullanicilars.InsertOnSubmit(KullaniciInsert);
Osm.SubmitChanges();

Gördüğünüz gibi ekleme işlemimiz bu kadar kısa sürdü. Veritabanımızı zaten mimariye dahil ettiğimiz için sorunsuz bir şekilde ekleme işlemi gerçekleşecektir.

Şimdi Eklediğimiz veriyi çekmeyi gösteriyim ben en iyisi;

VerileriGoster.aspx sayfamıza bir adet GrdiView atıyoruz


<asp:GridView ID="GridView1" runat="server">
</asp:GridView>

Şimdi ise VerileriGoster.aspx.cs sayfamızı kodlamaya geçelim;


OsmkrtDataContext Osm = new OsmkrtDataContext();
var HakkimizdaSelect = from h in Osm.Hakkimizdas
select h;
GridView1.DataSource = HakkimizdaSelect;
GridView1.DataBind();

İşte Bu kadar basit. Verilerimizi çektik ve gridview de gösterdik.

Hadi Bide güncelleme yapalım ne derseniz. Guncelle.aspx diye bir web sayfası oluşturuyoruz ve Altına şu kodarımızı yazıyoruz;


<table style="width:100%;">
<tr>
<td class="style1">
<asp:Label ID="Label1" runat="server" Text="Adınız Soyadınız"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtAdSoyad" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
<asp:Label ID="Label2" runat="server" Text="Kullanıcı Adınız"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtKullaniciAdi" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
<asp:Label ID="Label3" runat="server" Text="Şifre"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtSifre" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
&nbsp;</td>
<td>
<asp:Button ID="btnGuncelle" runat="server"
Text="Guncelle" onclick="btnGuncelle_Click" />
</td>
</tr>
</table>

Bu kodlarımızı yazdık ve cs syfamıza geçiyoruz şu kodları yazıyoruz;

OsmkrtDataContext Osm = new OsmkrtDataContext();
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["ID"]==null)
{

}
else
{
var KullaniciId = int.Parse(Request.QueryString["ID"].ToString());
var Guncelle = from g in Osm.Kullanicilars
where g.ID == KullaniciId
select g;
foreach (var user in Guncelle)
{
txtAdSoyad.Text = user.AdSoyad;
txtKullaniciAdi.Text = user.KullaniciAdi;
}
}
}
protected void btnGuncelle_Click(object sender, EventArgs e)
{
if (Request.QueryString["ID"]==null)
{

}
else
{
var KullaniciId = int.Parse(Request.QueryString["ID"].ToString());
var KullaniciUpdate=from u in Osm.Kullanicilars
where u.ID==KullaniciId
select u;
foreach (var user in KullaniciUpdate)
{
user.Sifre = txtSifre.Text;
}
Osm.SubmitChanges();
}
}

Bu kodlarımızı yazdık yalnız ben bu projede ıd değerini elimle yazdım sizlere göstermek amacıyla siz istediğiniz gibi kullanmakta özgürsünüz.

Şimdi güncelle işlemimiz de bittiğine göre son olarak verileri silme işlemine geçebiliriz.

Sil.aspx diye bir sayfa oluşturuyoruz ve sayfamıza ;


<table style="width:100%;">
<tr>
<td class="style1">
<asp:Label ID="Label1" runat="server" Text="Adınız Soyadınız"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtAdSoyad" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
<asp:Label ID="Label2" runat="server" Text="Kullanıcı Adınız"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtKullaniciAdi" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
<asp:Label ID="Label3" runat="server" Text="Şifre"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtSifre" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
&nbsp;</td>
<td>
<asp:Button ID="btnSil" runat="server"
Text="Sil" onclick="btnSil_Click"/>
</td>
</tr>
  </table>

Bu kodlarımızı yazıyoruz. Bu kodlarımızı yazdıktan sonra ise cs tarafına geçiyoruz ve alt kısımda ki kodlarımızı oraya yazmaya başlıyoruz;


OsmkrtDataContext Osm = new OsmkrtDataContext();
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["ID"] == null)
{

}
else
{
var KullaniciId = int.Parse(Request.QueryString["ID"].ToString());
var Sil = from d in Osm.Kullanicilars
where d.ID == KullaniciId
select d;
foreach (var user in Sil)
{
txtAdSoyad.Text = user.AdSoyad;
txtKullaniciAdi.Text = user.KullaniciAdi;
}
}
}
protected void btnSil_Click(object sender, EventArgs e)
{
if (Request.QueryString["ID"] == null)
{

}
else
{
var KullaniciId = int.Parse(Request.QueryString["ID"].ToString());
var KullaniciDelete = from d in Osm.Kullanicilars
where d.ID == KullaniciId
select d;
Osm.Kullanicilars.DeleteAllOnSubmit(KullaniciDelete);
Osm.SubmitChanges();
}
}

Yine ben burda id değerini elimle girmeyi tercih ettim siz göster sayfasından verecğiniz bir linkle(querstring) ile bu işlemi çok güzel bir şekilde gerçekleştirebilirsiniz.

Linq kullanımı bu kadar basit işte arkadaşlar. Gece oturdum ya o kadar bannerimde linq yazıyo bi yazı paylaşmadım dedim. Ben linq yapısını çok beğendim ama ne sebepten dir projelerimde kullanmıyorum. Elbet bir gün işimize yarayavaktır. Umarımsize de faydalı olur.

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker

ASP.Net de TreeView Kullanımı

Arkadaşlar bu yazımda size asp.net treeView kullanımını göstereceğim ve sonsuz bir menu yapısı oluşturmayı göstereceğim. İlk olarak veritabanımızı oluşturalım ve sayfalar diye bir tablo açalım. Daha sonra bu tablomuzun içine SayfaId,SayfaAd,Icerik ve root alanlarını açalım. Root altsayfalama yapmamıza yarayacak alanımız.
Şimdi alt kısımda yazacağım kodu lütfen Default.aspx sayfamıza yazalım.


    
	
		
    
	
    
    

Bu kodlarımızı yazdıktan sonra gelin şimdi asıl kodlara c# kodlarımıza geçelim.

DataTable dt = new DataTable();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            SqlDataAdapter dap = new SqlDataAdapter("select SayfaId,SayfaAd,root from Sayfalar order by root", baglan.baglanti);
            dap.Fill(dt);
            populateData(TreeView1.Nodes[0], getrows("0"));

        }
    }
DataRowCollection getrows(string id)
    {
        DataView dw = new DataView(dt);
        dw.RowFilter = "root=" + id;
        return dw.ToTable().Rows;
    }

    void populateData(TreeNode node, DataRowCollection col)
    {
        foreach (DataRow row in col)
        {
            TreeNode n = new TreeNode();
            n.Text = row[1].ToString();
            n.Value = row[0].ToString();
            node.ChildNodes.Add(n);
            populateData(n, getrows(row[0].ToString()));
        }

    }
    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
        if (TreeView1.SelectedNode.Parent != null)
        {
            Response.Redirect("SayfaDetay.aspx?SayfaId=" + TreeView1.SelectedNode.Value);
        }
    }

 


Bu kodlarımızı da Default.aspx.cs sayfamıza yazıktan sonra artık işlem bitmiş olacak ve kullanıma hazır hale gelecek.
Görüşmek Üzere;
Osman KURT
Yazılım geliştirici ve Grafiker

ASP.Net de Multiupload Olayı

Evet arkadaşlar bugün size asp.net de çokcakullandığımız bir olayın kısa yolunu alnatıcam. Eminim ki hepiniz yaptığınız siteler de yada projelerde resim yada dosya uploadı yapmışınızdır ve bunları tek tek yapmak çok sıkıcı bir iştir. İşte bu kodlar ve yazılımcının mahareti tam burada devreye giriyor ve işte multiupload kodları :D

İlk olarak projemizi oluşturalım ve default sayfamızı tasarlamay başlayalım.

<asp:Panel ID="Panel1" runat="server">

        </asp:Panel>

        <br />

        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /><br />

        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>


Şimdi ise default.aspx.cs satfasınayazıcamız kodlara bakalım;

 

protected void Page_Load(object sender, EventArgs e)
    {
        for (int i = 1; i <= 3; i++)//10 kere dön 
        {
            FileUpload myFileUpload = new FileUpload();//Yeni File Upload Kontrolünin instance'ni al 
            myFileUpload.ID = "Upload_" + i;//Erismek için ID'ni belirle 
            this.Panel1.Controls.Add(myFileUpload);//Kontrolü panel içine ekle 
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        FileUpload myFileUpload;
        for (int i = 1; i <= 3; i++)
        {
            myFileUpload = ((FileUpload)Panel1.FindControl("upload_" + i.ToString()));
            if (myFileUpload.HasFile)
            {
                myFileUpload.SaveAs(Server.MapPath("images/" + myFileUpload.FileName));
                OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\db.mdb;Persist Security Info=True");
                OleDbCommand cmd = new OleDbCommand("insert into Resim (Resim) values ('" + myFileUpload.FileName + "')", cnn);
                cnn.Open();
                cmd.ExecuteNonQuery();
                cnn.Close();
            }
        }
        Label1.Text = "İşlem Başarıyla Gerçekleşti";
    }

Kodlarımız bu kadar arkadaşlar üst kısımda ki kodları eksiksiz bir şekilde yazdığımız da sizde artık resim upload etmenin kolaylığına varacaksınız.

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker