11 Mart 2015 Çarşamba

Asp.NET ve MySQL İle Açılan Liste Doldurma, Seçilen Açılan Liste ile Diğer Bir Açılan Listeyi Veritabanından Doldurma

Bilgisayarınıza MySQL indirip kurun. PhpMyAdmin indirip IIS ayarlarını yapın ve istediğiniz bir veritabanını oluşturun sonrasında iki adet DropDownList sayfaya ekleyin, projenizin isminin üzerinde sağ tıklayarak Add Reference bölümünden şekildeki gibi MySQL kütüphanelerini sayfaya referans olarak ekleyin. Eğer MySQL istemezseniz önceki konulardaki Access veya SQL bağlantı metodlarınıda kullanabilirsiniz.
mysqlreference1
mysqlreference2
Kod Bölümüne gerekli kütüphaneleri ekleyelim ;
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using System.Linq;
using MySql.Data;
using MySql.Data.MySqlClient;//proje adına sag tıklayarak Add Reference seçeneğinden .NET sekmesinden MySQL.Data eklenecek
public partial class birbirinebagli2dropdownlistmysqlile : System.Web.UI.Page
{
MySqlConnection objConn;
MySqlCommand objCmd;
//String strSQL;
protected void Page_Load(object sender, EventArgs e)
{
baglantifonk();
if (!Page.IsPostBack)
{
String strSQL;
strSQL = “SELECT DISTINCT(alan_no),alanlar FROM alandal where durum=1″;
MySqlDataReader dtReader;
objCmd = new MySqlCommand(strSQL, objConn);
dtReader = objCmd.ExecuteReader();
alansecacilirmenu.DataSource = dtReader;
alansecacilirmenu.DataTextField = “alan”;
alansecacilirmenu.DataValueField = “alanno”;
alansecacilirmenu.DataBind();
alansecacilirmenu.Items.Add(“Yeni”);
}
}
protected void baglantifonk()
{
String strConnString;
strConnString = “Server=localhost;User Id=root; Password=mysqlparola; Database=yogalt; Pooling=false”;
objConn = new MySqlConnection(strConnString);
objConn.Open();
}
protected void Page_UnLoad()
{
objConn.Close();
objConn = null;
}
protected void alansecacilirmenu_SelectedIndexChanged(object sender, EventArgs e)
{
if (alansecacilirmenu.SelectedValue.ToString() != “Yeni”)
{
String strSQL;
strSQL = “SELECT malzemetur,malzemeCinsi FROM turler where alan_no=” + alansecacilirmenu.SelectedValue.ToString();
MySqlDataReader dtReader;
objCmd = new MySqlCommand(strSQL, objConn);
dtReader = objCmd.ExecuteReader();
malzemeturacilirmenu.DataSource = dtReader;
malzemeturacilirmenu.DataTextField = “malzemeCinsi”;
malzemeturacilirmenu.DataValueField = “malzemetur”;
malzemeturacilirmenu.DataBind();
malzemeturacilirmenu.Items.Add(“Yeni”);
}
else
{
//yeni alan için gerekli panel yada form gösterilebilir.
}
}
}

Windows 7 – IIS üzerine PHP, ASP, MySQL ve PhpMyAdmin Kurulumu ve Klasör İzinleri

Windows 7 (64 bit işletim sistemi) ve IIS 7.5 üzerinde PHP 5 ve MySQL 5 çalıştırmak için öncelikle gerekli olan yazılımları aşağıdaki linklerden indiriniz.
PHP 5 indirmek için (32 bit ve 64 bit kullananlar aynı dosyayı indirebilir) :
MySQL 5 (64 bit) indirmek için : (mysql-essential-5.xxx-win32.msi)
MySQL 5 (32 bit) indirmek için : (mysql-essential-5.xxx-winx64.msi)
MySQL 5 installer
PHPMyAdmin kurulumu
Kurulum aşamasını PHP ve MySQL kurulumu olarak iki kısımda anlatacağım.
Bir Önceki Konudaki MySQL bağlantısı için yerel olarak PHP ve MySQL ve PhpMyAdmin kurulumunu aşama aşama; internetten derlediklerim ve kendi eklediklerim ile pdf dosyası olarak aşağıdan indirebilirsiniz.

Dikkat!!! Facebook ile gelen CHROME Virüsü (Eklentilere Eklenen)

Facebook‘ta yeni bir virüs dolaşmakta. Bu virüs arkadaşlarınızdan birinin paylaştığı salyt gösterisi isimli video’ya tıkladıktan sonra video’nun açılması için adobe flash player güncellemeli diyerek  baya inandırıcı görsellerle sizi kendisinin adobe olduğuna inandırıp bilgisayara erişim izni vermenizle bulaşıyor ve chrome dahil bilgisayarın bir çok yerine yapışıyor. Virüs pc ye bulaştı mı artık bütün sayfalar otomatik olarak yukarıdaki adreslerden açılıyor. Bu Çözümü aşağıdaki adreste buldum ve windows xp ‘de de sorun çözüldü. Antivirüs hala arıyor bişey bulamadı ama şu an için sorunsuz kullanıma devam edebiliyorum.
Öncelikle eğer bu virüsü bilgisayarınıza yüklediyseniz, Chrome üstünden facebook veya twitter’a erişim sağlamayınız. Eğer girdiyseniz facebook’tan samsung mobile apss vs. tarzı isimli uygulamanın erişim iznini kaldırın başka bir tarayıcıdan. Twitter üstüne herhangi bir uzantıyla yapışmıyor meraklanmayın sadece virüs bulaşmış chrome üstünden girerseniz tweet atabiliyor.
ilk olarak google chrome‘u kapatın
Sonra win7 için C:\Documents and Settings\KULLANICI ADINIZ\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions adresine gidin.
win xp için C:\Documents and Settings\KULLANICI ADINIZ\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions adresine gidin.
Orada yüklediğiniz tüm eklentiler vardır. Bu dosyalardan biri o virüslü eklentidir. O dosyaların tamamını silin, bu tüm eklentilerinizin kaybolmasına sebep olur fakat onları sonradan yükleyebilirsiniz.
Başlat>çalıştır’a tıklayın regedit yazın
Açılan kayıt defterinde HKEY_LOCAL_MACHİNE-SOFTWARE > Policies > Google > Chrome > Extenstions isimli adrese gidin
buradki “jkakdbeksdnfdfıbvaslcdlseşadm” gibi karmaşık isimli satırı silin
Ben denetim masasından program ekle/kaldır girip kaldırdım ama adreste şu şekilde; Sonra bilgisayarınıza revo uninstaller isimli programı indirip kurun ve program üstündenAdobe Flash Player 1,90 isimli uygulamayı kaldırın.
Chrome’u tekrar başlattığınızda virüs tamamen kalkmış olacaktır.
Ben bu yolu kendi bilgisayarımda (windows 7) ve windows xp’de çalışıyor.
Bu yol kayıt defteri onarımları içerdiği için tehlikeli bir yoldur ve yapılan ilk hatada bilgisayarınızı formatlayabilir o yüzden tüm sorumluluk size aittir. Ama Sorun bu şekilde çözüldüyse yinede güncel bir antivirüs ile sistemi tekrar tarattırın.
http://www.bilgisayarbilisim.net/guvenlik-antivirus-spyware-vs-f48/chrome-virus-www-aramamekani-com-t109701.html adresine çözümü yazan farukdogu kullanıcısına çok teşekkür ediyorum

Asp.NET ve MySQL İle Gridview Doldurma-1

Öncelikle Bilgisayarınıza MySQL indirip kurun. PhpMyAdmin indirip IIS ayarlarını yapın ve istediğiniz bir veritabanını oluşturun. Bu işlemlerin detaylı anlatımı için tıklayın. Projenizin isminin üzerinde sağ tıklayarak Add Reference bölümünden MySQL kütüphanelerini sayfaya referans olarak ekleyin. Referans ekleme için bir önceki konuda resimli olarak anlatmıştım. Eğer MySQL istemezseniz önceki konulardaki Access veya SQL bağlantı metodlarını da kullanabilirsiniz.
Sonrasında sayfaya bir adet gridview ekleyin.
gridview1
gridview1.aspx.cs kodu;
bu kütüphaneleri sayfanızın koduna ekleyiniz.
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using MySql.Data.MySqlClient;
using System.Collections.Generic;
using System.Linq;
using MySql.Data;//proje adına sag tıklayarak Add Reference seçeneğinden .NET sekmesinden MySQL.Data eklenecek.
public partial class gridview1 : System.Web.UI.Page
{
MySqlConnection baglanti;
MySqlCommand sqlkomut;
protected void Page_Load(object sender, EventArgs e)
{
baglantifonk();//sayfa yüklendiğinde gridview dolsun
if (!Page.IsPostBack)
{
GridView122.ShowFooter = true;//yeni ekle satırı görünsün,ileride dolacak
gridviewdoldur();
}
}
protected void baglantifonk()//programı sadeleştirmek için MySQL bağlantı kodlarını fonksiyon olarak yazdık.
{
String baglantistringi;
baglantistringi = “Server=localhost;User Id=root; Password=66666640; Database=yogaltveri; Pooling=false”;
baglanti = new MySqlConnection(baglantistringi);
baglanti.Open();
}
protected void gridviewdoldur()//programı sadeleştirmek için gridview doldurma kodlarını fonksiyon olarak yazdık.
{
String strSQL;
strSQL = “SELECT alanno,kod,alan,dal,sef FROM alandal “;
MySqlDataReader dtReader;
sqlkomut = new MySqlCommand(strSQL, baglanti);
dtReader = sqlkomut.ExecuteReader();
GridView122.DataSource = dtReader;
GridView122.DataBind();
dtReader.Close();
dtReader = null;
}
protected void Page_UnLoad()
{
baglanti.Close();//Sayfa kapatıldığında MySQL bağlantısını sonlandır
baglanti = null;
}
}

Asp.NET ve MySQL İle Gridview Edit,Cancel,Update ve Delete Butonları Ekleme 2

Bir önceki konuda Gridview nasıl doldurulur anlatmıştık. O konunun Devamı olarak Gridview nesnemize Edit,Cancel,Update ve Delete Link Butonlarını Şekillerdeki Gibi veya Gridviewe kod yazarak  ekliyoruz.gridview2
gridview3 gridview4
<asp:GridView ID=”GridView122″ runat=”server” ShowFooter=”True” DataKeyNames=”alanno”
onrowcancelingedit=”GridView122_RowCancelingEdit”
onrowediting=”GridView122_RowEditing”
onrowupdating=”GridView122_RowUpdating” onrowdeleting=”GridView122_RowDeleting”>
<Columns>
<asp:CommandField HeaderText=”Düzenle” ShowEditButton=”True” />
<asp:CommandField HeaderText=”Satır Sil” ShowDeleteButton=”True” />
</Columns>
</asp:GridView>
Sonra Gridview nesnesinin olaylar bölümünden olayları oluşturuyoruz.
gridview5
Daha sonra olayları şimdilik aşağıdaki gibi doldurabiliriz;
protected void GridView122_RowEditing(object sender, GridViewEditEventArgs e)//Gridview122 edit butonuna basıldığında
{
GridView122.EditIndex = e.NewEditIndex;//gridviewde tıklanan satır güncelleme modunda gözükecek
GridView122.ShowFooter = false;//gridwiev ekleme satırı gözükmeyecek
gridviewdoldur();
}
protected void GridView122_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)//Gridview122 edit butonuna basıldıktan sonra cancel butonuna basılırsa.
{
GridView122.EditIndex = -1;//gridview güncelleme satırı modundan çıkacak
GridView122.ShowFooter = true;//gridwiev ekleme satırı gözükecek
gridviewdoldur();
}
protected void GridView122_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//bu alana Güncelleme kodları yazılacak ileriki bölümlerde
}
protected void GridView122_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//bu alana Seçili Satırı Silme kodları yazılacak ileriki bölümlerde
}

Asp.NET ve MySQL İle Gridview Sütunlarını Belirleme ve Veritabanından Durumlarına Göre Doldurma, TemplateField Oluşturma 3

Hazırlanıyor. Daha Önce Anlatılan 2 konunun devamı olarak anlatılacaktır. Nette buraya kadar döküman bulunuyor fakat burdan sonra çok fazla türkçe kaynak yok. Benim yaptığım örnekte ileri aşamalarda GridView içine bir nesne ekleyip nesneleri veritabanı ile ilişkilendirecez. Şimdi basit olarak Gridview nesnesinin  AutoGenerateColumns=”False”  yapalım. Artık veritabanından otomatik tabloları almaz. Bundan sonra alınacak alanları biz seçeceğiz.
GridView içinde kullanılan etiketlerin amacı;
<Columns> <!–kendi ekleyeceğimiz sütunlar bu etiket arasında olacak –>
<asp:TemplateField HeaderText=”Alan No”><!–ilk sutun ve adı  3 ayrı bölümden oluşur–>
<ItemTemplate><!–normaldeki liste; ilk sutun bu alanlara diğer asp nesneleri eklenip ilişkilendirilebilir–>
<asp:Label id=”lblAlanNo” runat=”server” Text='<%# DataBinder.Eval(Container, “DataItem.alanno”) %>’></asp:Label>
</ItemTemplate>
<EditItemTemplate><!–Edit butonuna basıldığında görünecek liste halinde ilk sutun bu alanlara diğer asp nesneleri eklenip ilişkilendirilebilir –>
<asp:TextBox id=”txtEditAlanNo” size=”5″ runat=”server” Text='<%# DataBinder.Eval(Container, “DataItem.alanno”) %>’></asp:TextBox>
</EditItemTemplate>
<FooterTemplate><!–en alttaki boş sutunda görünecek liste halinde ilk sutun bu alanlara diğer asp nesneleri eklenip ilişkilendirilebilir –>
<asp:TextBox id=”txtAddAlanNo” size=”5″ runat=”server”></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<!–her sutun için bir template field oluşturup istenen alanların istenen nesnelerde olmasını sağladık.–>
</Columns>
yukarıdaki gibi istenen nesneleri bu alnlara yerleştirebiliyoruz.
Birde ileride GridView verilerine ulaşmak için anahtar alan için DataKeyNames=”alanno” eklemek gerekiyor.
GridView Nesnemizin kodları;
<asp:GridView ID=”GridView122″ runat=”server” ShowFooter=”True” DataKeyNames=”alanno”
onrowcancelingedit=”GridView122_RowCancelingEdit”
onrowediting=”GridView122_RowEditing”
onrowupdating=”GridView122_RowUpdating”
onrowdeleting=”GridView122_RowDeleting” AutoGenerateColumns=”False”>
<Columns>
<asp:TemplateField HeaderText=”Alan No”>
<ItemTemplate>
<asp:Label id=”lblAlanNo” runat=”server” Text='<%# DataBinder.Eval(Container, “DataItem.alanno”) %>’></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=”txtEditAlanNo” size=”5″ runat=”server” Text='<%# DataBinder.Eval(Container, “DataItem.alanno”) %>’></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox id=”txtAddAlanNo” size=”5″ runat=”server”></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=”Alan Kod”>
<ItemTemplate>
<asp:Label id=”lblAlanKod” runat=”server” Text='<%# DataBinder.Eval(Container, “DataItem.kod”) %>’></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=”txtEditAlanKod” size=”5″ runat=”server” Text='<%# DataBinder.Eval(Container, “DataItem.kod”) %>’></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox id=”txtAddAlanKod” size=”5″ runat=”server”></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=”Alan Adı”>
<ItemTemplate>
<asp:Label id=”lblAlanAdi” runat=”server” Text='<%# DataBinder.Eval(Container, “DataItem.alan”) %>’></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=”txtEditAlanAdi” size=”5″ runat=”server” Text='<%# DataBinder.Eval(Container, “DataItem.alan”) %>’></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox id=”txtAddAlanAdi” size=”5″ runat=”server”></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=”Dal Adı”>
<ItemTemplate>
<asp:Label id=”lblDalAdi” runat=”server” Text='<%# DataBinder.Eval(Container, “DataItem.dal”) %>’></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=”txtEditDalAdi” size=”5″ runat=”server” Text='<%# DataBinder.Eval(Container, “DataItem.dal”) %>’></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox id=”txtAddDalAdi” size=”5″ runat=”server”></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText=”Dal Şefi”>
<ItemTemplate>
<asp:Label id=”lblAlanDalSefi” runat=”server” Text='<%# DataBinder.Eval(Container, “DataItem.sef”) %>’></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=”txtEditDalSefi” size=”5″ runat=”server” Text='<%# DataBinder.Eval(Container, “DataItem.sef”) %>’></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox id=”txtAddDalSefi” size=”5″ runat=”server”></asp:TextBox>
<asp:Button id=”btnAdd” runat=”server” Text=”Add” CommandName=”Add”></asp:Button>
</FooterTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText=”Düzenle” ShowEditButton=”True” />
<asp:CommandField HeaderText=”Satır Sil” ShowDeleteButton=”True” />
</Columns>
</asp:GridView>
en anlaşılır olanı bana göre kod ama isterseniz bunları aşağıdaki şekilleri takip ederek de yapabilirsiniz;
1.gridview6
2.gridview7
3.gridview8bu alanların eksik kodları ileriki zamanlarda ve bir önceki konuda anlatmıştıkç
4.gridview9
5.gridview10
6. gridview11

Asp.NET ve MySQL İle Gridview Sütunlarını Belirleme ve Veritabanından Durumlarına Göre Doldurma, TemplateField Oluşturma, Seçilen Duruma Göre Silme, Güncelleme, Yeni Kayıt ve Düzenleme İşlemleri. 4

Bir Önceki Dersteki GridView nesnesi hazırlandıktan sonra Daha Önce kodlarını yazmadığımız Update, Delete, Add butonlarının işlevlerini yazalım.
  • GridView122.DataKeys[e.RowIndex].Value; kodu değer alabilmesi için  GridView nesnesinin kodunda DataKeyNames=”alanno”  olması gerekir.
  • GridView son hali;(bir önceki dersten farklı olarak sadece kırmızı ile yazdığım kısım eklenecek );
<asp:GridView ID=”GridView122″ runat=”server” ShowFooter=”True”DataKeyNames=”alanno”
onrowcancelingedit=”GridView122_RowCancelingEdit”
onrowediting=”GridView122_RowEditing”
onrowupdating=”GridView122_RowUpdating”
onrowdeleting=”GridView122_RowDeleting” AutoGenerateColumns=”False”
onrowcommand=”GridView122_RowCommand”> şeklinde olmalıdır.
  • Güncelleme Kodu;
protected void GridView122_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//*** txtEditAlanKod ***//
TextBox txtEditAlanKod = (TextBox)GridView122.Rows[e.RowIndex].FindControl(“txtEditAlanKod”);
//*** txtEditAlanAdi ***//
TextBox txtEditAlanAdi = (TextBox)GridView122.Rows[e.RowIndex].FindControl(“txtEditAlanAdi”);
//*** txtEditDalAdi ***//
TextBox txtEditDalAdi = (TextBox)GridView122.Rows[e.RowIndex].FindControl(“txtEditDalAdi”);
//*** txtEditDalSefi ***//
TextBox txtEditDalSefi = (TextBox)GridView122.Rows[e.RowIndex].FindControl(“txtEditDalSefi”);
String strSQL;
strSQL = “UPDATE alandal SET” +
” kod= ” + txtEditAlanKod.Text +
” ,alan = ‘” + txtEditAlanAdi.Text + “‘ ” +
” ,dal = ‘” + txtEditDalAdi.Text + “‘ ” +
” ,sef = ‘” + txtEditDalSefi.Text + “‘ ” +
” WHERE alanno = ” + Convert.ToString(GridView122.DataKeys[e.RowIndex].Value);
sqlkomut = new MySqlCommand(strSQL, baglanti);
sqlkomut.ExecuteNonQuery();
GridView122.EditIndex = -1;
GridView122.ShowFooter = true;
gridviewdoldur();
}
  • Silme Kodu;
protected void GridView122_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
String strSQL;
strSQL = “DELETE FROM alandal WHERE alanno = ” + GridView122.DataKeys[e.RowIndex].Value;
sqlkomut = new MySqlCommand(strSQL, baglanti);
sqlkomut.ExecuteNonQuery();
GridView122.EditIndex = -1;
gridviewdoldur();
}
  • Ekleme Kodu;
protected void GridView122_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == “Add”)
{
//*** txtAddAlanKod ***//
TextBox txtAddAlanKod = (TextBox)GridView122.FooterRow.FindControl(“txtAddAlanKod”);
//*** txtAddAlanAdi ***//
TextBox txtAddAlanAdi = (TextBox)GridView122.FooterRow.FindControl(“txtAddAlanAdi”);
//*** txtAddDalAdi ***//
TextBox txtAddDalAdi = (TextBox)GridView122.FooterRow.FindControl(“txtAddDalAdi”);
//*** txtAddDalSefi ***//
TextBox txtAddDalSefi = (TextBox)GridView122.FooterRow.FindControl(“txtAddDalSefi”);
String strSQL;
strSQL = “INSERT INTO alandal (kod,alan,dal,sef) ” +
” VALUES (” + txtAddAlanKod.Text + “,'” + txtAddAlanAdi.Text + “‘ ” +
” ,'” + txtAddDalAdi.Text + “‘,'” + txtAddDalSefi.Text + “‘) “;
sqlkomut = new MySqlCommand(strSQL, baglanti);
sqlkomut.ExecuteNonQuery();
gridviewdoldur();
}
}