Sümeyye Kök

Archive for the ‘Genel’ Category

Visual Studio Invalid license data. Reinstall is required hatası aldıysanız beni çözüme kavuşturan BU linkteki exe yi indirip çalıştırmanız yeterli olacaktır diye umuyorum:)

 

Biz devc++ da opengl ile yazılım yapamaya çalışırken bi arkadaşımın sorununu araştırıken çözmüş bulunduk.Sizinle de paylaşayım istedim:

Eğer siz C:\Windows\System32 içine glut32.dll i indirip kopyalayıp yapıştırdığınız halde hala aynı error mesajını alıyorsanız belki de çözüm şudur:

glut32.dll i C:\Windows\System içine yapıştıralım gençler:)

başka milyon tane durumdan d akaynaklanıyor olabilir ama bu da bizi mutlu eden çözümdü:)

kolay gelsin:)

.fig Matlab’da grafik arayüzün oluştrumanız sonucunda ortaya çıkan bir uzantıdır.

 

 

 

 

Matlab’ın ana ekranının Menü-barından File->New-> Gui diyerek Gui ekranını açıyoruz

 

 

 

 

ve soldaki butonları,textfield’ı kullanarak tasarımı yapıyoruz.Sağ tıklayıp Property Inspector yardımıyla değişiklik yapabiliyoruz.

 

 

 

 

 

kolay gelsin hepmize..:)

Ancak benim bir anlık da olsa bulamayınca merak ettiğim soru şuydu: kaydettikten sonra ben yeniden düzenleme yapmak için .fig uzantılı dosyamı açtığımda direk olarak düzenleme ekranı gelmiyor.Bunun yerine sonuç ekran tasarımı geliyor.Yeniden düzenlemek istersem ne yaparım?

efendim çözümü basitmiş:) File->New->Gui diyoruz fakat çıkan ekranda Open Existing Gui ‘ yi seçiyoruz ve istediğimiz projeyi editlemek için açmış bulunuyoruz.

 Asp.Net ile yazdığım bir projede bir anda çok önemli bir detay haline gelen ve beni de biraz uğraştıran kodlar ve işlevi şu şekilde:

Butona tıklandığında veritabanımızdaki istenilen verileri alıp textboxlara çekme işlemini yapan kodlar ->

 

public void dene()
{

SqlConnection con = new SqlConnection(“data source=Sumeyye-PC;Database=BarkodBakkalSatis;Integrated Security=True”);
con.Open();
SqlCommand komut = new SqlCommand();
komut.Connection = con;
komut.CommandText = “select Barkod_No,Urun_Ad,Urun_Cins,Urun_Fiyat,Stok_Miktar,Risk_Limit,Tarih from Urun_Tanimlama where Barkod_No='” + TextBox1.Text + “‘”;
SqlDataReader dr = komut.ExecuteReader();
while (dr.Read())
{
TextBox1.Text = dr[0].ToString();
 TextBox2.Text = dr[1].ToString();
 TextBox3.Text = dr[2].ToString();
  TextBox4.Text = dr[3].ToString();
 TextBox5.Text = dr[4].ToString();
  TextBox8.Text = dr[5].ToString();
}

ve Butonun Click_Event’ı içinde de fonksiyonu çağırmalıyız:

protected void Button5_Click(object sender, EventArgs e)
{
dene();

Herkese kolay gelsin.:)

/span

    Web servis’e Visual Studio aracılığıyla bağlandıktan sonra insert,update gibi işlemlerimizi yapmak için nasıl kodlar yazmalıyız diye düşünebiliriz.Kendimce basic seviyede bir örnekle açıklamaya çalıştım..

Default.aspx yi kullanrak bir dizayn yapacağız ve gerekli buton,kodlarla daha önceden tabloda yaptığımız işleri web tabanında gerçeklemiş olacağız..adım adım gidelim:

1-web servis bağlantımızın ardından otomatik olarak projenizde oluşturulmuş olan Default.aspx’in altındaki Design kısmını seçip,Toolbox larımızı kullanrak projemize uygun textBox ları ve bir de bilgilerimizi ekrana bastıracağımız gridView i ekliyoruz

2-Ekle,Sil,Güncelle butonlarınızı ekledikten sonra kod bölümüne geçelim.mesela ekleme işlemi için örnek kodlarımız verelim diğer komutları bu mantıkla dizayn etmeniz yeterli olacaktır.

namespace projeadi

 

{

 public partial class _Default : System.Web.UI.Page

 {

 protected void Page_Load(object sender, EventArgs e)

 {

 getData(); //veritabanı bağlantısını sağlayan fonksiyon

 }

 SqlConnection conn;

 

protected void Button1_Click(object sender, EventArgs e)

 {

 if (Page.IsPostBack != false)

 {

 string cnString = ConfigurationManager.ConnectionStrings[“ApplicationServices”].ConnectionString;

 conn = new SqlConnection(cnString);

 conn.Open();

 

SqlCommand komut = new SqlCommand(“insert into OGRENCİ_TABLO(OGRENCI_ADI,OGRENCI_SOYADI) values(@ad,@soyad)”, conn);

 komut.Connection =conn;

 komut.Parameters.AddWithValue(“@ad”, TextBox1.Text);

 komut.Parameters.AddWithValue(“@soyad”, TextBox2.Text);

 

komut.ExecuteNonQuery();

 komut.Dispose();

 conn.Close();

 getData();//bu fonksiyon veritabanı bağlantısını sağlayan fonksiyonum,siz kendi Connection kodlarınızı eklemelisiniz.

 

}

 

}

3-farkettiğiniz gibi değişkenlere atayarak metodumuzu gerçekleştirdik.gerekli kütüphaneler ise:

 

using System;

 using System.Collections.Generic;

 using System.Linq;

 using System.Web;

 using System.Web.UI;

 using System.Web.UI.WebControls;

 using System.Data;

 using System.Data.SqlClient;

 using System.Configuration;

 

şeklindedir.

 

4-şimdide Webservice1.asmx.cs ye ait kodları verelim:

 

[WebMethod]

 public void getData()

 {

 string cnString = ConfigurationManager.ConnectionStrings[“ApplicationServices”].ConnectionString;

 conn = new SqlConnection(cnString);

 conn.Open();

 SqlDataAdapter sda = new SqlDataAdapter(“Select OGRENCI_ID,OGRENCI_ADI,OGRENCI_SOYADI from OGRENCİ_TABLO”, conn);

 DataTable dt = new DataTable();

 sda.Fill(dt);

 conn.Close();

 GridView1= dt;

 }

5-işlemlerimiz bu şekildedir.İlk olarak web ervisi çalıştırıp ardından Default.aspx’i sağ click->set start up project olarak ayarlayıp çalıştırırsanız localhostta tasarımınızla birlikte gelen tablo verilerini görmüş olursunuz

herkese kolay gelsin:)

 

 

 

C#’ ta geliştirdiğim bir otomasyondan aklımda kalanları paylaşmak istedim.Fazla oyalanmadan direk kodlara geçiyorum step step gidelim:(Çok fazla listbox,textbox kullanmış olduğum projenin sadece örnek teşkil edecek kısımlarını paylaşıyorum:)

1-Öncelikle using System.IO kütüphanesini direk programın başına ekliyoruz.

2-Eğer dosya okuma işlemi yapmak istiyorsak şu kodlar işe yarayacaktır:
private void Form2_Load(object sender, EventArgs e)

{      //Formlar üzerinde çalştım.ve Load kısmına bu kodları yazdım(Açıklamaları takip edelim.)

FileStream fs;           //Dosya açmak için değişken oluşturdum.
StreamReader sr;   //Dosya okumak için değişken oluşturdum.
string satir;
string dosya_adi;
char[] karakter = new char[1];   //Dosyadan birer birer okuma yapacaz.
karakter[0] = ‘*’;                              //Kayıtarın karışmaması için ben * işaretii ayıraç olarak kullandım.
string[] dizi = new string[20];
dosya_adi = “C:\OtoProje\musteri.txt”;   //Dosya yolunu belirttik.

fs = new FileStream(dosya_adi, FileMode.Open, FileAccess.Read);   //Dosyayı açma ve okuma işlemlerini bu iki satırda yaptık.
sr = new StreamReader(fs);
while ((satir = sr.ReadLine()) != null)     //dosya sonuna gelinmediği sürece okumaya devam etmesi gerektiğini kodladık.
{
dizi = satir.Split(karakter);
listBox1.Items.Add(dizi[0].ToString());
listBox2.Items.Add(dizi[1].ToString();
}
sr.Close();
fs.Close();

}

3Kayıt Ekleme butonuna basıldığında:

private void button2_Click(object sender, EventArgs e)
{
listBox1.Items.Add(textBox1.Text);  // texbox’tan alınıp kayıtın eklenme işlemini yaptık.
listBox2.Items.Add(textBox9.Text);
MessageBox.Show(“KAYIT YAPILDI,görmek için yeniden KAYIT sayfasına dönünüz..”);
this.Close();

}

4-Kayıt silme işlemi:

private void button3_Click(object sender, EventArgs e)   //Silme butonu için kodları yazdık.
 {
int index = listBox1.SelectedIndex;     //listboxların birine tıklandığında diğerlerinin de seçilmesini sağlayan şey index’tir.
if (index < 0)
{
MessageBox.Show(“Önce silinecek ögeyi seçin!..”);
}
else
{
listBox1.Items.RemoveAt(index);
listBox2.Items.RemoveAt(index);
this.Close();

}

5-index kullanımı(Seçili listbox uygulaması) :

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int index = (sender as ListBox).SelectedIndex;
listBox1.SelectedIndex = index;
listBox2.SelectedIndex = index;

}

6-Verilerin dosyaya kayıt edilem işlemi Form kapanırken yapılır.Bu yüzden Formun CloseEvent’ına şu kodlar yazılabilir:

private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
FileStream fs;
StreamWriter sw;
string dosya_no, plaka, sigorta_sirketi, aciklama, sasi_no, motor_no, musteri_adi, tc_no, telefon_no, exper_adi, exper_telefon, police_no, iscilik_tutar, parca_tutar, genel_toplam;
int kayit_sayisi;

fs = new FileStream(“C:\OtoProje\musteri.txt”, FileMode.Create, FileAccess.Write);       //yazmak  için dosya açılır.
sw = new StreamWriter(fs);
kayit_sayisi = listBox1.Items.Count;  // kayıt sayısı hesaplanır.
if (kayit_sayisi > 0)
{
for (int i = 0; i < kayit_sayisi; i++)
{
sigorta_sirketi = textBox1.Text.ToString();
police_no = textBox2.Text.ToString();

sigorta_sirketi = listBox5.Items[i].ToString();
police_no = listBox6.Items[i].ToString();

sw.WriteLine( sigorta_sirketi + “*” + police_no );

}

sw.Close();
fs.Close();

}

kodlar bu şekilde ana hatlarıyla özetlenebilir.Tek bir Form üzerinde çalıştığımızı varsayarak bişeyler karaladım umarım işinize yarar kolay gelsin:))


Web servis hakkında netten biraz alıntı yaparak biraz da kendimce bildiklerimden şöyle bir derleme yaptım:

Web servisi, XML mesajlaşma tabanlı bir sistem entegrasyon yöntemidir.Diğer bir tanımla; bilgisayarlar arasında ağ üzerinden etkileşimi ve uyumluluğu sağlayacak yazılım sistemidir. Günümüzde birbiriyle haberleşecek sistemleri gerçeklemek için en çok tercih edilen yöntem web servisidir.

Web servisler 3 ana birimden oluşmaktadır:

Servis sağlayıcı, servis istemcisi ve servis kayıt birimi.
Servis sağlayıcı(service provider): Bu birim, sağlayıcıdaki servislere erişimi sağlar ve kendi sitesinde bulunan web servisleri tanımını servis kayıt birimine (service registry) kaydeder. Burada servisin nasıl çağrılacağı belirtilir.
Servis İstemcisi (Service Requester) : Bu uygulama servis sağlayıcısındaki web servislerini çağırıp kullanır. Web servisinin nasıl çağrılacağını bulur ve ilgili parametreleri servis kayıt biriminden arayarak çağırır.
Servis Kayıt Birimi (Service Registry) : Servis sağlayıcılarının yayımladıkları web servisi tanımlarını saklar ve aranıp bulunmasını sağlar. Servis sağlayıcıları servis kayıt birimini tarayıp istediği servisler hakkında bilgi edinebilir. Ayrıca, servis kayıt birimi her servisin nasıl çağırılacağı konusunda tanım bilgileri de içerir.şimdi bir örnek verelim: diyelim ki biri java diğeri asp.net ile kodlanmış iki site var elimizde.Bu iki site arasında veri paylaşımı yapmak ya da bir siteden diğer siteye yönlendirme yapmak istiyoruz.Bu durumda sıkıntı çıkmaması için ortak bir dile ihtiyaç duyulur. Bu da WSDL’dir(Web Service Description Language- Web Servis Tanımlama Dili). Bu dil web servislerini tanımlamaya yaramaktadır.(İstemcilerin kullanacakları web servisindeki bilgileri önceden bilmeleri gerekir.bunu sağlayan da WSDL dir.)

Farklı iki programlama dilini konuşturmak için bir de SOAP(Simple Object Access Protocol – Basit Nesne Erişim Protokolü)’a ihtiyaç duyulur. Öyle ki Java’da yazılan metodlar çağrıldığında, bu istek SOAP paketine dönüştürülür ve server(sunucu)’a gider. Server da SOAP paketini alır ve inceler. Daha sonra çağrılan metod işletilir ve veriler dataset’e aktarılır. Oluşturulan dataset nesnesi de SOAP yardımıyla client(istemci)’a gönderilir. Client bilgisayar da SOAP paketini alır ve verileri işler. Yani SOAP paketi client ve server arasındaki iletişimi sağlar.

şematik olarak da özetlersek..web servis hakkında genel bir bilgi edinmekti amacım,umarım faydalı olmuştur.

önceki makalemizde visual’dan sql kodlarımızı import edebileceğimiz altyapıya ulaşmıştık..c# ile kodların birleştirilmesinden önce SQL komutlarını hatırlayalım istedim,sizde aynı istek ve kararlılıktaysanız buyrun başlayalım:)

1-) DDL (Data Definition Language)

DDL deyimleri veritabanı üzerinde nesne yaratmak için kullanılırlar.

CREATE TABLE: CREATE TABLE  Ogrenci

( Ogrenci_id   integer   NOT NULL,

Ogrenci_adi   varchar(50)  NULL,

Ogrenci_sehir  varchar(20)  NULL )

//Ogrenci isimli ve içine Ogrenci_id,Ogrenci_adi,Ogrenci_sehir  yazan sütunları olan bir tablo oluşturduk.

ALTER DEYİMİ:

Oluştrulmuş nesnenin değiştirilmesini sağlar.

ALTER TABLE  Ogrenci ADD Ogrenci_numara  varchar(50)  NOT NULL

DROP DEYİMİ:

Tabloyu ve verileri siler.

DROP TABLE Ogrenci

2-)DML(Data Manipulation Language)

veri tabanı içindeki verileri değiştimek için kullanılan sql komutlarıdır.

->SELECT

->INSERT

->UPDATE

-> DELETE

Seçeneklerin Anlamları:
ALL sözcüğü bütün satırların sonuç listesinde görünmesini sağlar.
DISTINCT sözcüğü sadece tek olan (unique) kayıtların sonuç listesinde yer almasını sağlar. liste parametresi veriden seçilecek kolonu (sütunu) belirtir.
INTO sözcüğü yeni bir tablo yaratmayı sağlar. yeni tablo parametresi sorgu sonucu yaratılacak tabloyu belirtir.
FROM sözcüğü belli bir tablonun seçilmesini sağlar. tablo parametresi ise sorgulanacak olan tablo ya  da tabloları, görünümleri belirtir.
WHERE bir koşulu belirterek sadece o kuşula uyan kayıtların seçilmesini sağlar.
GROUP BY Kayıtların gruplanmasını sağlar.
HAVING deyimiyle de ara toplamların alınmasını sağlar. HAVING sözcüğü de kayıtlarda kısıtlama yapar ancak hesaplamayı etkilemez.

SELECT DEYİMİ:

//bir tablodaki tüm verileri göstermek için

SELECT * FROM Ogrenci

//sadece istenilenleri çekmek için

SELECT Ogrenci_adi,Ogrenci_sehir FROM Ogrenci

//tablonuzdaki belli aralıktaki verileri çekmek için

SELECT * FROM Ogrenci WHERE Ogrenci_numara BETWEEN 100 AND 200

aynı anlamda SELECT * FROM Ogrenci WHERE Ogrenci <200 AND >100

VERİLERİ SIRALAMAK:

SELECT * FROM ORDER BY Ogrenci_id ASC

//burada ogrenci tablsunun Ogrenci_id sütunundaki veriler büyükten-küçüğe sıralanmış olur.Tam tersi için DESC yazmak yeterli olacaktır.

SELECT * FROM Ogrenci_adi  WHERE LIKE ‘S%’

// Ogrenci tablosunda Ogrenci_adi ‘S’ ile başlayan verileri almamızı sağlar.

INSERT DEYİMİ:

Tabloya veri ekleme işlemi yapılır.

INSERT INTO Ogrenci (Ogrenci_id,Ogrenci_adi,Ogrenci_sehir)  VALUES (‘123′,’SUMEYYE’,’ADANA’)

//Ogrenci isimli tablomuzun istediğimiz sutunlarını seçip manuel olarak eklemek istediğimiz değerleri ‘ ‘ tek tırnaklar içerisinde girdik.

UPDATE DEYİMİ:

//Güncelleme ilemleri yapılır

UPDATE Ogrenci SET Ogrenci_id=987 WHERE (Ogrenci_adi=’SUMEYYE’ )

//Ogreci_adi SUMEYYE olan öğrencinin Ogrenci_id sini 987 yap anlamına gelir.

DELETE DEYİMİ:

DELETE * FROM Ogrenci

//Ogrenci tablosundaki tüm verileri siler

DELETE Ogrenci WHERE Ogrenci_id= ‘123’

//Ogrenci_id si 123 olan veriyi Ogrenci tablosundan siler.

Sql Server Management ile database  bağlantısı kurup,tablo oluşturma gibi işlemleri yapmak mümkün.Ancak kurulumu sıkıntılı olduğu için(2 gün boyunca uğraştım:) mis gibi Visual Studio 2010 da bulduğum çözümü paylaşmak istedim.umarım faydalı olur..

view->Server Explorer dan karşınıza bu görüntü gelecektir.

Şimdi  Server Name ve database name’i resimdeki gibi girip ok tuşuna basıyoruz.

bu işlem snucunda Server explorer da pcadisqlexpress.ORNEK.dbo yu görmeniz lazım daha sonra solda Databasein altında bilgisayarınızınadisqlexpress.ORNEK.dbo yu görmeniz lazım         bu şekildeki gibi olmalı(diğer kısımlar kafanızı karıştırmasın önceden oluşturduğum projeler..)         şimdi Tables sağ tuş ->add new table ile tablo ekleyip doldurabiliriz..(doldurup ornek_tablo ismiyle kaydettim..) bu şekilde..artık tablomuz oluştu.           şimdi yukarıdaki menü’den File->new->project ve Windows Form Application’u seçiyoruz ve bir isim veriyoruz.

bu işlem de tamamsa şimdi yine yukarıdaki menü  ‘ den Data->Show Data Sources tıklıyoruz.Ve ardından Add New Data Source diyoruz.

bu aşamadan sonra en önemli kısım son resimde göreceğiniz gibi Tables ve altındaki OGRENCİ_TABLO yu seçmeniz

bu kısımdan sonra Data Sources kısmında tablonuz oluşacaktır,bileşenlerini formunuzun içine sürükleyip bırakırsanız son resimdeki şekli elde edersiniz.Datasetimiz hazır:)   ve F5 ile çalıştırıp sonucu görebilirisniz.Bir dahaki yazımda dataset kullanmadan kaydetme,güncelleme,silme(Datagridview ve sql kullanarak)  işlemlerinden bahsetmeyi hedefliyorum,kodlar hazır en kısa zamanda buluşacak inşallah meraklılarıyla;)