Osman KURT

Yazılım Uzmanı | MVC Eğitmeni

ASP.Net de Klasöre Okuma-Yazma İzni Verme

Arakadaşlar bu yazımda size asp.net de bir klasöre okuma yazma izni verilmesini sağlayan kodu göstereceğim. Bu da projelerimizde kullanabileceğimiz bir olay. Daha önceki yazılarımda bir arkadaşımız yorum yapmıştı oluşturduğumuz klasöre yazma izni verebiliyomuyuz diye. lafı uzatmadan ben kodu paylaşayım isterseniz;

Alt kısımda ki kodlarımız bu işlemi sağlayan kodlar;

string HesapAdi = string.Empty; //Izin verilecek olan oturum adi 

public void YazimIzniVer(string HesapAdi, string klasorYolu)
{
try
{
if (Directory.Exists(klasorYolu))
{
var klasor = new DirectoryInfo(klasorYolu);
var klasorGuvenligi = klasor.GetAccessControl();

var rule = new FileSystemAccessRule(HesapAdi, FileSystemRights.Write, InheritanceFlags.None | InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);

ListBox1.Items.Add(rule.IdentityReference.Value.ToString());
klasorGuvenligi.SetAccessRule(rule);
klasor.SetAccessControl(klasorGuvenligi);
Label1.Text = "Klasöre izin verildi.";
}
else
{
Label1.Text = "Klasör bulunamadı.";
}
}
catch (Exception ex)
{
Label1.Text = "asd";
}

Kodlarımız bu kadar arkadaşlar umarım faydalı olur.

Görüşmek Üzere

Osman KURT

Yazılım Geliştirici ve Grafiker

ASP.Net’ de İstatistikleri Grafikle Göstermek

Arkadaşlar bu yazımda size web projelerimizde sakladığımız istatistiki bilgileri kullanıcıya grafik şeklinde göstermeyi anlatacağım. Biliyorsunuz artık grafikler hayatımızın vazgeçilmez objeleri oldular. Bir proje yaparken verileri kullanıcıya en hızlı ve en kolay şekilde göstermemiz lazım ve bunuda bu yazımda paylaştığım bilgilerle yapmak en doğrusu sanırım.

Lafı uzatmadan olaya geçeyim ben isterseniz. İlk olarak buradan WebChart.dll (160,00 kb) dosyamızı indirerek oluşturduğumuz ASP.Net(2.0) projemize referans alıyoruz. Daha sonra visual studio programımızın toolbarına referans olarak aldığımız dll dosyamızı ekliyoruz. Default.aspx sayfamızda ilk ekran görüntümüz oluşmuş bulunmakta.

 

Şimdi önemli kısma geldik, kod tarafımızda yapacağımız değer kontrolleriyle son görüntümüzü elde edeceğiz ve işlemi sonlandıracağız.

Şimdi Default.aspx.cs sayfamıza geliyoruz form load olayımıza alt kısımda ki kodlarımı yazıyoruz.

PieChart chart = new PieChart();
chart.Data.Add(new ChartPoint("Osman", 10));
chart.Data.Add(new ChartPoint("Kurt", 15));
chart.Data.Add(new ChartPoint("Kariyersoft", 50));

ChartControl1.Charts.Add(chart);
ChartControl1.RedrawChart(); 

Bu kodlarımızı da yazdık ve şimdi f5 yaparak projemizi çalıştıralım.Şimdi aldığımız ekran görüntüsü aşşağıda ki gibi olacak.

 

Gördüğünüz gibi projemiz çalışmakta isterseniz değerleri değiştirerek kontrol edebilir,doğruluğundan emin olabilirsiniz.

Görüşmek üzere

Osman KURT

Yazılım Geliştirici ve Grafiker

ASP.Net ve Cookies kullanımı

Bilmiyorum farkettiniz mi hiç ama herhangi bir üyelik olan web sayfasına giriş yaptığımızda oturumumu açık tut diye bir checkbox bulunur bunu seçtiğiniz de oturumunuz siz özellikle kapatmadığınız takdirde sürekli açık kalır, yada yazılımcı ne kadar olarak belirlediyse o kadar diyelim. şimdi isterseniz gelin bizde projemizde kullanalım. Daha doğrusu ben bir örnekle anlatayım siz kendi projenizde kullanmak istediğiniz yere uygulayın.

 İlk olarak sayfamıza 2 adet textbox bir adet buton koyalım. butonumuza bastığımız anda cookies oluştursun projemiz. kodlarımızı alt kısımda ki gibi olacak;

login.aspx.cs sayfamız;

HttpCookie myCookie = new HttpCookie("osmankurt");
myCookie["Adı"] = TextBox1.Text;
myCookie["Parola"] = TextBox2.Text;
myCookie.Expires = DateTime.Now.AddDays(2); // cookiesimiz 2 gün kalsın dedik.
Response.Cookies.Add(
myCookie); // cookies ekledik
Response.Redirect("default.aspx"); 

bu sayfamız da kodlarımız bu kadar arkadaşlar. Şimdi oluşturduğumuz cookies de ki değerlerimizi diğer sayfamızda okutalım bakalım doğrumu değer oluşturuyoruz.

default.aspx.cs;

load olayına alt kısımda ki kodlarımızı yazıyoruz;

HttpCookie myCookies = Request.Cookies["osmankurt"]; // cookiesimizi okuduk
Label1.Text = myCookies["Adı"]; // değeri nesneye atadık
Label2.Text = myCookies["Parola"]; // değeri nesneye atadık 

Bu kodlarımızı da yazdıktan sonra işlemimizin başarılı birşekilde gerçekleştiğini göreceksiniz arkadaşlar.

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker 

ASP.Net de Mysql'den MSsql'e Veri Aktarma

Arakadaşlarbu yazımda mysql den mssql e veri aktarmayı göstereceğim size daha doğrusu bunu kodla nasıl yaptığımızı göstereceğim. Üzerinde çalıştığım projede kullandığım bir yapı. lafı fazla uzatmadan kodlarımıza geçelim isterseniz.

İlk olarak MySql.Data.dll (288,00 kb) dll dosyasını indiriyoruz ve projemize reference olarak ekliyoruz. Daha sonra kod bloğumuza geçiyoruz ve ilk önce mysql db mize bağlanıyoruz.Ardından MySqlDataReader kullanarak mysqlde ki verilerimizi okutuyoruz ve mssql de ki veritabanımıza kayıt ediyoruz. Bu işlem ilktabloda ki veriler kadar devam edecektir. kodlarımız aşşağıdaki gibidir.

MySqlConnection bagC = new MySqlConnection("mysql db yolu");
bagC.Open();
MySqlCommand sorgu = new MySqlCommand("select * from urunler", bagC);
MySqlDataReader dr = sorgu.ExecuteReader();
while (dr.Read())
{

SqlConnection cnn=new   SqlConnection ("veritabanı");
SqlCommand DilIcerik = new SqlCommand("insert into dbo.Urunler (Deger) values (@Deger", cnn);
cnn.Open();
DilIcerik.Parameters.AddWithValue("@Deger ", dr["ilkdeger"].ToString());
int son = DilIcerik.ExecuteNonQuery();
}

dr.Close();
cnn.Close();
bagC.Close(); 

Görüşmek Üzere;

Osman KURT

Yazılım geliştirici ve Grafiker

ASP.Net da DataTable Kullanımı ve XML Okuma-Yazma İşlemleri

Arkadaşlar asp.net yazıyorsak eminim ki yaptığınız projelerde çoğu yerde datatable kullanmak zorundasınız, işin garip tarafı xml de kullanmak zorundasınız. Artık bütün veriler xml altında dışarı aktarılıyo biliyorsunuz. Size bu yazımda elimizde ki bir veritabanını kullanarak daha doğrusu bir tabloyu kullanarak datatable de veri okumayı okuduğumuz verileri xml e yazmayı ve yazdığımız xml den tekrar okumayı gösterecğim.

İsterseniz Kodlarımıza geçelim.

İlk olarak üst kütüphanemize;

using System.Data.SqlClient;

ekliyoruz.

Daha sonra artık nerede yazarsanız ben load olayında yazıyorum;

SqlConnection cnn = new SqlConnection(@"db yolu buraya");
SqlCommand cmd = new SqlCommand("tablo bilgileri buraya",cnn);
cnn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable("OsmanKURT");
dt.Load(dr);
DataList1.DataSource = dt;
DataList1.DataBind();
cnn.Close();

Bu kodun aynısı yazdığımız takdirde tabi alanlarını doldurarak veriyi okuyoruz.

Peki veriyi xml e yazma işlemi nasıl oluyo, oda yukarda ki işlemlere ek olarak yazacağımız;

dt.WriteXml(Server.MapPath("~/yaz.xml"));
dt.WriteXmlSchema(Server.MapPath("~/yaz.xsd")); 

kodlarımızla oluyor.

Son olarak ta xml den okumayı gösterecğim. Bunun için yeni bir sayfa açıyoruz ve load olayına;

DataTable dt=new DataTable("OsmanKURT");

dt.ReadXml(Server.MapPath("yaz.xml"));
dt.ReadXmlSchema(Server.MapPath("yaz.xsd"));

DataList1.DataSource=dt;
DataList1.DataBind(); 

Bu kodlarımızı da yazınca işlemimiz tamamlanmış bulunmaktadır.

Yararlı olması dleğiyle;

Osman KURT

Yazılım Geliştirici ve Grafiker 

Bir Tablodan Bir Tabloya Veri Taşıma

Bir tablodan bir tabloya veri taşıma işini tek bir stored procedur ile yapacağız arkadaşlar. Eminim ki çok işinize yaracak bir fonksiyon. Lafı fazla uzatmadan kodlarımızı yazayım ben isterseniz.

Kodun işlevi kısaca şöyle. Önce "Where" satırında, kayıt ekleyeceğimiz tablodaki verileri alıyoruz. Daha sonra asıl kayıtları çekeceğimiz tablodan verileri çağırıyoruz. En alt satırda "not StokId in" bölümünde ise insert işlemi yaparken hedef tabloda bulunmayan kayıtların kaydedilmesini sağlıyoruz.

Create Procedure tblkayit
As
Begin
  Insert into tblUrunN
  (
  fldnStokId,
  fldDurum
  ) 
  Select nStokID, 1
  From tblMuhasebeUrunler.dbo.tbStok MU
  Where not nStokID in (Select UU.fldnStokId From tblUygulamaUrun UU) 
End 

Kodlarımız bu kadar arkadaşlar.Yararlı olması dileğiyle

Görüşmek Üzere

Osman KURT

Yazılım geliştirici ve Grafiker 

Asp.Net de Stored Procedure Kullanımı

Arkadaşlar bu yazımda stored procedure lardan bahsedeciğim size ve küçük bir örnek gösterceğim ki aklınızdadaha güzel bir şkeilde yer edinsin.
Nedir bu prcedure ler?
Transact-SQL (T-SQL) Stored Procedure, Microsoft SQL Server üzerinde barındırılan, T-SQL komutları ile hazırladığınız işlemler bütününün çalıştırılma anında derlenmesi ile size bir sonuç üreten SQL Server bileşenidir.


- Çalışma anı planlama sağlar ve tekrar tekrar kullanılabilir
- Query lerinize otomatik parametrelendirme getirir
- Uygulamalar arasında ortak kullanılabilir yapıdadır
- Güvenli data modifikasyonu sağlar
- Network bandwidth inden tasaruuf sağlar (daha az network bandwidth kaynak kullanımı)
- Zamanlanmış görevlere eklenebilir
- Job olarak tanımlanabilir ve schedule edilebilir
- Database objelerine güvenli erişim olanağı tanır


İsterseniz gelin birde örnek bir uygulama gerçekleştirelim. Yazağım bu procedure benim bir projem de kullandığım ve uye kaydı yaptığım bir procedure.

create proc [dbo].[pr_uyeEkle]
(
@FirmaAdi nvarchar(max),
@Adi nvarchar(max),
@Soyadi nvarchar(max),
@Tel nvarchar(max),
@Cep nvarchar(max),
@DogTar nvarchar(max),
@Fax nvarchar(max),
@Mail nvarchar(max),
@KullaniciAdi nvarchar(max),
@WebAdresi nvarchar(max),
@Sehir int,
@Ilce int,
@Adres nvarchar(max),
@VergiNo nvarchar(max),
@VergiDairesi nvarchar(max),
@Sifre nvarchar(max),
@UyeTipi int,
@EklenmeTarihi datetime
)
as
insert into Uyeler(FirmaAdi,Adi,Soyadi,Tel,Cep,DogTar,Fax,Mail,KullaniciAdi,WebAdresi,
Sehir,Ilce,Adres,VergiNo,VergiDairesi,Sifre,UyeTipi,EklenmeTarihi) values(@FirmaAdi,@Adi,@Soyadi,@Tel,@Cep,@DogTar,@Fax,@Mail,@KullaniciAdi,@WebAdresi,
@Sehir,@Ilce,@Adres,@VergiNo,@VergiDairesi,@Sifre,@UyeTipi,@EklenmeTarihi)


Görmüş olduğunuz gibi çok basit bir olay aslında. Kod tarafında yapmanız gereken değerleri procedure de belireleğimiz gibi listelemek ve procedure mizi çağırmak.
Görüşmek Üzere...

Osman KURT

Yazılım Gelişrici ve Grafiker

ASP.Net de Excelden Veri Okumak

Merhaba arakadaşlar yine işinize çok yarayacağını düşüğüm bir kodu sizinle paylaşacağım. Bildiğiniz üzere güzel Türkiyemizde veriler her zaman mssql de veritabanında saklanmıyor. Çoğu insanımız verilerini hücre mantığı olduğu ve kullanımı kolay olduğu için Microsoft office Excel de saklıyor. Onun için bizde excelden veri okutmayı baya bir yerde projede kullanabiliyoruz.Uzmatmadan kodumuzageçelim isterseniz.

DataTable getirTumATSTablo()
{
 string dosya_adres=@"C:\osmankurt.xls";
 OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + adresimiz + ";Extended Properties=Excel 8.0");
baglanti.Open();

 string query = "select * from [Tablo1$C2:F200] ";
OleDbDataAdapter oAdp = new OleDbDataAdapter(query, baglanti);
DataTable dt = new DataTable();
oAdp.Fill(dt);
return dt;

Kodlarımız bu kadar arkadaşlar.dikkat etmenizi istediğim bir nokta ise hücre yönetimi eğer kodları birkez daha incelerseniz string query kısmında hücre adreslerini verdiğimizi göreceksiniz. Benim kodlarımda C2 ile F200 arası kalan veriler okunmaktadır.Yararlı olması dileğiyle.

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker 

ASP.Net de Word Çıktısı Almak

Merhaba Arkadaşlar,

Bugün size şu anda yazmakta olduğum bir projede kullandığım bir olayı anlatacağım. veritabanın da sakladığım bir text verisinin word olarak çıktısını almayı gösterecğim.

ASP.NET'te bu işlemi yapmak oldukça kolay. Lafı uzatmadan ben kodlara geçiyim.

Response.Clear();
Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-9");
Response.Charset = "ISO-8859-9";
Response.ContentType = "application/msword";

string strFileName = "Word-Ciktisi.doc";
Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileName);

Response.Write("word dosyanızda çıkıcak alan burası isterseniz veritabanından gelen veriyi yazdırabilirsiniz.");

Response.End();
Response.Flush();


Bu kodu Page_Load ya da Button_Click gibi olaylara yazabilirsiniz.

Kodda da gördüğünüz gibi Response nesnesi oldukça güçlüdür.

  •     .Clear() metodu ile sayfamızın o ana kadar yüklenmiş olan HTML kısmını siliyoruz
  •     Sayfamızın karakter kodlamasını belirtiyoruz. "ISO-8859-9" Türkçe karakter kümesine denk geliyor. Dilerseniz "utf-8" olarak değiştirebilirsiniz. (Arapça, vs. dilleri de desteklesin diye)
  •     İçerik tipini belirtiyoruz.
  •     Dosya adını veriyoruz.
  •     İçeriğimizi yazdırıyoruz. İstediğiniz gibi metni belirtebilirsiniz. (Koyu, italic, table, link, vs.. vs..)
  •     İşlemi sonlandırıp, çıktımızı gönderiyoruz.

Aynı Olayı database kullanarak yapmak içinse;

        Response.Clear();
        Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-9");
        Response.Charset = "ISO-8859-9";
        Response.ContentType = "application/html";

        string strFileName = "ihalemerkezi.html";
        Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileName);

        #region Güncelle Bilgileri Dolduruluyor
        SqlCommand sorgu = new SqlCommand("select * from Ihale where IhaleId=" + Request.QueryString["IhaleId"], baglan.baglanti);

        if (ConnectionState.Closed == baglan.baglanti.State)
            baglan.baglanti.Open();

        SqlDataReader dr = sorgu.ExecuteReader();
        while (dr.Read())
        {
            Response.Write(dr["IhaleMetni"].ToString());
        }
        baglan.baglanti.Close();
        #endregion

        Response.End();
        Response.Flush();

Bu işlemde bu kadar basit. yalnız ben class kullandığım için bazı kodlar yabancı gelebilir. Kısacası yapmanız gereken sqlconnection kullanarak veritabanına bağlanmak sqlcommand la tabloya bağlanmak ve son olarak SqlDataReader ile verileri okutarak uygun yere yazdırmak.


Görüşmek Üzere;

Osman KURT

Yazılım geliştirici ve Grafiker

ASP.Net (SQL) de İki Tarih Arasında ki Farkı Bulma

Arkadaşlar bu bilgiyi yaptığım bir projede kullandığım ve önemli bir bilgi olarak gördüğüm için sizlerle paylaşmak istedim. eminim ki yaptığımız projelerin birçoğunda böyle işlemlerle uzun zamanlar boğuşmuşuzdur en azından ben öyle :) Başlıkta asp.net dedim ama aslında ben işi sql kısmında bitirdim, en kolayı bu geldi. Tek saturlık bir kod ile bunu başarabiliyoruz.

Neyse fazla uzatmadan kod kısmına geçiyim isterseniz.

Şimdi veritabanımız da verinin eklenme tarihi var ve bu tarih üzerinden şimdiki tarihe kadar olan farkı bulmayı çalışacağız. Bu sayede kullanıcılara veya verilere istediğimiz işlemleri otomatik olarak uygulatabileceğiz.

Kod kısmımız alt taraftaki gibidir. Bu kod size eklenme tarihinden günümüz tarihine kadar kalan süresi 15 olan kayıtları verir.

SELECT * FROM UYELER WHERE DateDiff( day , EklenmeTarihi,GETDATE())<15 and DateDiff( day , EklenmeTarihi,GETDATE())>0

Kodumuz bu kadar arkadaşlar. Bukodu istediğiniz işlemde kullanabilirsiniz.

Yararlı olması Dileğiyle Görüşmek Üzere

Osman KURT

Yazılım Geliştirici ve Grafiker