Osman KURT

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

Json Veriyi Serializer ve Deserialize Etme

Projelerimiz de bolca kullanmakta olduğumuz json veri alışverişini sağlarken kullanmamız gereken bir method. Göndereceğimiz veriyi json formatına çevirirken yada gelen json veriyi istediğimiz formata çevirirken kullanmaktayız ve olmazsa olmazlarımızdan.

Örnek kod parçası;

        public static string JsonSerializer<T>(T t)
        {
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
            MemoryStream ms = new MemoryStream();
            ser.WriteObject(ms, t);
            string jsonString = Encoding.UTF8.GetString(ms.ToArray());
            ms.Close();
            return jsonString;
        }

        public static T JsonDeserialize<T>(string jsonString)
        {
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
            T obj = (T)ser.ReadObject(ms);
            return obj;
        }

 


Görüşmek üzere,

Osman KURT
Yazılım Uzmanı

 

C Sharp ile Datagridview deki Kayıtları Excele Aktarma

Bu yazımda DataGridview de listelediğimiz verileri excel dosyasına aktarmayı göstereceğim. Biliyorsunuz ki projelerimizde kullandığımız verileri bazen farklı alanlarda da kullanmamız icab edebilir. O zaman ne yapacağız database de sakladığımız verileri excel gibi programlara dökeceğiz ki hedefe ulaştırmak daha kolay olsun. Lafı zuatmadan kodlarıma geçmek istiyorum ben. İşe ilk olarak Microsoft.Office.Interop.Excel.rar (166,77 kb) dosyamızı indirdikten sonra projemize referans alarak başlayalım ve alt kısımdaki kodlarımızı cs tarafına yazalım.

private void button1_Click(object sender, EventArgs e)
{
  excele_aktar(dataGridView1);
}
void excele_aktar(DataGridView dg)
{
  dg.AllowUserToAddRows = false;
  System.Globalization.CultureInfo dil = System.Threading.Thread.CurrentThread.CurrentCulture;
  System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-us");
  Microsoft.Office.Interop.Excel.Application Tablo = new Microsoft.Office.Interop.Excel.ApplicationClass();
  Microsoft.Office.Interop.Excel.Workbook kitap = Tablo.Workbooks.Add(true);
  Microsoft.Office.Interop.Excel.Worksheet sayfa = (Microsoft.Office.Interop.Excel.Worksheet)Tablo.ActiveSheet;
  System.Threading.Thread.CurrentThread.CurrentCulture = dil;
  Tablo.Visible = true;
  sayfa = (Worksheet)kitap.ActiveSheet;
  for (int i = 0; i < dg.Rows.Count; i++)
  {
    for (int j = 0; j < dg.ColumnCount; j++)
    {
      if (i == 0)
      {
        Tablo.Cells[1, j + 1] = dg.Columns[j].HeaderText;
      }
      Tablo.Cells[i + 2, j + 1] = dg.Rows[i].Cells[j].Value.ToString();
    }
  }
  Tablo.Visible = true;
  Tablo.UserControl = true;
}

Yazımız bu kadar arkadaşlar.

Görüşmek Üzere

Osman KURT

Yazılım Geliştirici ve Grafiker

C# da Webbrowser Kullanımı Textbox'ı Otomatik Doldurma Ve Butona Otomatik Basma

Arkadaşlar nerede kullanacağınızı bilemem ama yararlı bir kod paylaşacağım size. Nerede kullanacağınızı bilmiyorum çünkü bazı arkadaşlar bu kodu pek de iyi şeyler için kullanmıyorlar. Güvenlik açıkları olan siteler için tam bir baş belası işin aslı.

Bu yazımızda c# form tabanlı çalışacağız.İlk olarak formumuza 1 adet web browser,1 adet textbox ve 1 adet buton ekleyelim. Toolbax'ımızda mevcuttur. Şimdi buraya kadar  tamamladıksa asıl konuya geçelim gözümüze hemen daha önceden localde oluşturduğumuz web projesini çalıştıralım ve adres satırında ki adresi formumuza eklediğimiz webbrowser'ımızın url kısmına ekleyelim. URL kısmıa ekledikten sonra projeyi çalıştırdığımız da webbrowser kısmında localde ki sitenin çalıştığını göreceksiniz. Şimdi hangi tarayıcıyı kullanıyorsunuz bilmiyorum ama kaynak kodundan yada öğeyi denetle alanından sayfada ki textbox ın adını öğrenmemiz gerek ki değeri atayalım. Öğrendikten sonra birde butonumuzun adını aynı kısımdan öğrenmemiz lazım. Bunları da öğrendikten sonra atl kısımda ki kodlarımız işimizi görecektir. Formumuzda bulunan butona çift tıklayarak alt kısmıda ki kodları yazalım.

 

webBrowser1.Document.GetElementById("textboxın adı").InnerText = textBox1.Text;
foreach (HtmlElement el in webBrowser1.Document.All)
{
if (el.Name == "buton ismi")
{
el.InvokeMember("click");
}
}

ya da;

 

webBrowser1.Document.GetElementById("email").InnerText = epostaAdresi;
webBrowser1.Document.GetElementById("pass").InnerText = sifre;
webBrowser1.Document.Forms[0].InvokeMember("submit");


 

Arakadaşlar kodlarımız bu kadar. Bu kodlar webbrowser içinde ki textbox a bizim formumuza eklediğimiz textboxın içindeki değer gelecek ve butona otomatik şekilde basılacak ve işlem kendiliğinden gerçekleşecek. Tahmin edersiniz ki bunu bir döngüye soktuğumuz da nasıl tehlikeli bir yapı olduğunu görüyoruz.

Arkadaşlar bu kodları yararlı olması için paylaştım kötü amaçlar için kullanmayacağınızdan eminim.

Görüşmek üzere

Osman KURT

Yazılım Geliştirici ve Grafiker

 

C# da Excelden Listbox a Veri Aktarma

Arkadaşlar bu yazımızda elimizde bulunan herhangi bir excel dosyasından listboz a veri aktarmayı gösterecğim. Yapmamız gereken 1 adet windows form projesi oluşturmak ve içine 1 adet listboz 1 adet buton ve 1 adet opendialoh koymak. Daha sonra butonumuza çift tıklayarak al kısımda bulunan koldarımızı yazmak. Kodlarımız da kısaca xls dosyamızın kaynağını belirtiyoruz ve dosyamız içerisinde ki hangi alanlarda işlem yapacağamızı yazıyoruz. Daha sonra listbox.ıtems.add siyerek listbox elamanımızın içerisine verileri yazdırıyoruz.

openFileDialog1.Title = "Lütfen Dosya Seçiniz";
openFileDialog1.Filter = " (*.xls)|*.xls";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Multiselect = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
string dosya_adres = openFileDialog1.FileName; OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dosya_adres + ";Extended Properties=Excel 8.0");
con.Open();
string sql2 = "select * from [Sayfa1$A1:A5000] ";
OleDbCommand veri2 = new OleDbCommand(sql2, con); OleDbDataReader dr = null;
dr = veri2.ExecuteReader();

while (dr.Read())
{
if (dr[0] != "")
{
listBox1.Items.Add(dr[0].ToString());
}
else
{
break;
}
}
con.Close();
}

Kodlarımızı bu kadar arkadaşlar, umarım faydalı olur. Örneği sadece bu boyutuyla düşünmemek lazım. Çünkü bu ufak yazılar sizlere ve bizlere yardımcı olmak ve yol göstermek amacıyla var.

Görüşmek Üzere

Osman KURT

Yazılım Geliştirici ve Grafiker

C# da Textbox içindeki Değeri Otomatik Bloklama (Ctrl+A)

Bir önceki yazımda textbox içinde ki değeri otomatik kopyalamayı göstermiştim. Bu yazımda ise textbox içine geldiğimizde Ctrl+A komutunun yaptığı bloklama işlemini otomatik olarak yapmayı göstereceğim. Buda kullanışlı bir kod :D çünkü otomatik kopyalamayı isteyen kişi kopyalama anında emin olmak için değere otomatik bloklama işleminin yapılmasını ve kopyaladığından emin olmayı istedi. bende aşşağıda ki kodu yazdım. uzatmadan kodu veriyorum;

private void txticeriking_Click(object sender, EventArgs e)
{
Clipboard.Clear();
Clipboard.SetText(txticeriking.Text);

txticeriking.SelectionStart = 0;
txticeriking.SelectionLength = txticeriking.Text.Length;
txticeriking.Focus();
}

Kodlarımız bu kadar arkadaşlar, bu kodlar veriyi hem otomatik kopyalamaya yarar hemde otomatik kopyalama anında veriyi bloklamaya yarar.

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker. 

C# da Textbox İçindeki Değeri Tıklayarak Otomatik Kopyalama

Arkadaşlar küçük ama kullanışlı bir kod paylaşacağım sizinle, birçok insan artık klavyeden crtl+c yapmaya bile üşenir oldu ve biz yazılımcılardan otomatik kopyalama gibi isteklerde bulunur oldular. Aynı şeyde benim başıma geldi. Üzerinde çalıştığım bir projede otomatik kopyalama gerekti ve yaptım. Bunuda sizinle paylaşmak istedim isterseniz fazla uzatmadan kodumuza geçelim gerçekten çok kısa abir kod.

Tek yapmanız gereken textbox'ın click olayına alt kısımda ki verecğim kodu yazmanız.

private void txticeriking_Click(object sender, EventArgs e)
{
Clipboard.Clear();
Clipboard.SetText(txticeriking.Text);
}

Kodlarımız bu kadar arkadaşlar. artık textbox ın üzerine tıkladığınızda içinde ki veri otomatik olarak kopyalanacaktır.

Görüşmek üzere

Osman KURT

Yazılım Geliştirici ve Grafiker 

C# da Yazdığınız Programı PC Açıldığında Otomatik Başlatmak

Windows form tarafında bir programı yazdınız ve bu programı kulllanıma hazır hale getirdiniz. Ama bir problem var pc açıldığında yazdığımız olayın otomatik olarak başlaması lazım. Bunu nasıl yapıcaz peki işte bu kısa kodla. Yapmamız gereken serviceinstaller’da kod yazdığımız yere gidip,

using Microsoft.Win32;

RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
key.SetValue("ProgramAdı", "\"" + Application.ExecutablePath + "\"");

İşlemimiz bu kadar arkadaşlar herhangi bir problem kalmadı.

Görüşmek Üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker