BAĞLANTILARIM

Takip Edin:

0

Windows Form uygulamalarında butonun Enter tuşu ile algılanmasını sağlamak.

Perşembe, Aralık 25, 2014 / / , ,


Eğer kullanıcın programa giriş yapacağı ekranda Enter tuşuna bastığında Giriş butonunun tetiklenmesini istiyorsak;
Form ayarlarında bulunan AcceptButton değerine Giriş (btnGiris) butonunu ayarlamak yeterli oluyor.

Ya da kod tarafından yapılmak istenirse formun load olayında

this.AcceptButton = btnGiris;

AcceptButton yöntemi Windows Form uygulamlarında örnekteki gibi durumlar için  uygun.



Not: Asp.net web uygulamalarında ise buna benzer işlemler için kullanıcın giriş yapacağı bölüm; bir Panel kontrolü içine alınıp, panelin DefaultButton özelliğine tetiklenecek butonun adı verilerek yapılabilir.

0

Veritabanındaki tablolar üzerinde kayıt ekleme, güncelleme, silme gibi işlemler yapıldığında Trigger ve SQL Database Mail kullanarak mail göndermek.

Salı, Aralık 23, 2014 / /



Management Studio'da Management klasörü altında Database Mail üzerinde yeni bir mail yapılandırması oluşturulur.

Buradaki bilgilere gönderici mail adresi bilgileri girilir.

Profil name olarak verilen isim, trigger içinde @profile_name = '***' alanında kullanılacak.

İşlem tamamlandıktan sonra mail gönderim yapılandırmasının doğru yapılıp yapılmadığı Database Mail üzerinde sağ click yapılıp Send Test Mail ile kontrol edilebilir.

Daha sonra üzerinde hareket olduğunda bildirilmesini istediğimiz tablo hangisi ise o tablo üzerinde yeni bir trigger oluşturulur.

Bunun için aşağıdaki kodlar kullanılabilir.

USE [VERITABANI_ADI]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[TRIGGER_ADI] ON [dbo].[KAYIT_EKLENEN_TABLO]
FOR INSERT --yalnızca eklendiğinde mail gönderecek
AS
      BEGIN
     
          EXEC msdb.dbo.sp_send_dbmail
            @profile_name = '***', --database mail üzerinde oluşturduğumuz mail profil adı
            @recipients = 'tamer@tameryigit.com', --gönderilecek mail adresi
            @body = 'Yeni kayıt eklendi. Onaylamak için http://www.tameryigit.com', --mail içeriği
            @subject = 'Onay bekleyen kayıtlar var.' --mail başlığı        
      END



Not: SQL SERVER 2012 üzerinde test ettim. Sql Agent aktif olmasa da mail gönderimi sorunsuz olarak gerçekleşti.

4

File.Delete ile dosya silmeye çalışırken alınan "İşlem, başka bir işlem tarafından kullanıldığından '.....' dosyasına erişemiyor." hatası ve çözümü

Cumartesi, Kasım 15, 2014 / / , ,

Asp.net web sayfasında açık olan görsel silinmek istendiğinde yukarıdaki hata ile karşılaşılıyorsa.

File.Delete(Server.MapPath("../images/urun/deneme.jpg")); //Klasik dosya silme kodu

aşağıdaki şekilde değiştirilerek kullanılabilir.

FileStream fs = new FileStream(Server.MapPath("../images/urun/deneme.jpg"), FileMode.OpenOrCreate); //Streame al ve daha sonra serbest bırak.
fs.Flush();
fs.Close();
File.Delete(Server.MapPath("../images/urun/deneme.jpg")); //şimdi sil

0

Fancybox eklentili kullanışlı bir thumbnail galeri

Cuma, Ekim 24, 2014 / /

Fancybox eklentili kullanışlı bir Jquery thumbnail galeri


<script src="js/jquery.js"></script>
<script src="js/fancybox/jquery.fancybox.js?v=2.1.4" type="text/javascript"></script>
<script src="js/fancybox/jquery.mousewheel-3.0.6.pack.js" type="text/javascript"></script>
<link href="js/fancybox/jquery.fancybox.css?v=2.1.4"" rel="stylesheet" type="text/css" />
<script type="text/javascript">
$(document).ready(function () {
//imajGaleri
$(".gorsel").click(function () {
var secilenGorsel = $(this).attr("href");
$('#gorselIzle').hide();
$('#gorselIzle').show();
$("a[rel]").attr('rel', 'galeri');
$("a[href='" + secilenGorsel + "']").attr('rel', '');
$('#gorselIzle').html('<a href="' + secilenGorsel + '" rel="galeri" class="fancybox" title=""><img src="' + secilenGorsel + '" alt=""/></a>');
return false;
});
var galeriIlkGorsel = $('#gorselIzle img').attr('src');
$("a[href='" + galeriIlkGorsel + "']").addClass("aktif"); //ilk görsele aktif classı ekle. Galeride iki kez görünmesin.
$(".gorsel").not(".aktif").attr('rel', 'galeri'); //aktif classı dışındakileri galeriye dahil et.

//imajGaleriye fancybox
$('.fancybox').fancybox();
});
</script>

<div id="gorselIzle">
<a href="images/upload/1.png" rel="galeri" class="fancybox" title=""><img src="images/upload/1.png" alt="" /></a>
</div>
<a href="images/upload/1.png" rel="" class="gorsel fancybox"><img src="images/upload/1.png" class="thumb" border="0"/></a>
<a href="images/upload/2.png" rel="" class="gorsel fancybox"><img src="images/upload/2.png" class="thumb" border="0"/></a>

0

Asp.net Sayfa Adını Alma

Cuma, Ekim 24, 2014 / / ,

Asp.net sayfa adını alma

Asp.net'te sadece sayfa adını almak için aşağıdaki yöntemler kullanılabilir.

//Bu yöntem IIS Trust Level Medium seviyesinde çalışıyorsa hata veriyor.

<% string adres = System.Web.HttpContext.Current.Request.Url.AbsolutePath;
System.IO.FileInfo sayfa = new System.IO.FileInfo(adres);
string sayfaAdi = sayfa.Name; %> //Default.aspx


Page kullanarak

string sayfaAdi = Page.ToString().Replace("_aspx", ".aspx").Remove(0, 4); //default.aspx


Segment kullanarak

string sayfaAdi = Request.Url.Segments.Last(); //Default.aspx

string sayfaAdi = Request.Url.Segments[Request.Url.Segments.Length - 1]; //Default.aspx

0

Veritabanında image tipinde tutulmuş bir fotoğrafı .jpg olarak kayıt etmek

Perşembe, Ekim 23, 2014 / / , ,

 Veritabanında image tipinde tutulmuş bir fotoğrafı .jpg olarak kayıt etmek
         

string gorselYolu = "images/urun/";
string gorselData = "0xFFD8FFE000104A4649460001010000010001......."; //veritabanında tutulan görsel verisi
                        string gorselData = Convert.ToBase64String((byte[])gorselData);
                       
Guid guid = Guid.NewGuid();
                        string gorselYeniAd = guid + ".jpg";

                        //Görseli sunucuya kaydet
                        using (MemoryStream ms = new MemoryStream(Convert.FromBase64String(gorselData)))
                        {
                            using (Bitmap bm = new Bitmap(ms))
                            {
                                bm.Save(Server.MapPath(gorselYolu + gorselYeniAd));
                            }
                        }

0

ListView içindeki kontrole ulaşma ve değerini alma

Cumartesi, Ekim 11, 2014 / / , ,

ListView içindeki kontrole ulaşma ve değerini alma

ListView içindeki bir kontrole aşağıdaki şekilde erişilerek değeri alınabilir.



Burada lvListe isimli ListView'ın <ItemTemplate> tagları arasına yerleştirilmiş txtSiparisMiktar adında bir TextBox kontrolüne erişiliyor.



foreach (ListViewItem item in lvListe.Items)
                {
                    TextBox txtMiktar = (TextBox)item.FindControl("txtSiparisMiktar");
                    string miktar = txtMiktar.Text;                
                }

0

C# DataTable Sort kullanımı

Cuma, Eylül 26, 2014 / / ,

C# DataTable içinde sıralama yapma


//DataTable dt = islem.PersonelListe(); 
dt.DefaultView.Sort = "Sira"; //Sütun Adı
dt = dt.DefaultView.ToTable();

0

Gelen iletiler için en büyük ileti boyutu kotası (65536) aşıldı hatası ve çözümü

Perşembe, Eylül 18, 2014 / /

Gelen iletiler için en büyük ileti boyutu kotası (65536) aşıldı hatası ve çözümü

WCF servisinden veri çekerken yukarıdaki hatayla karşılaşıldığında aşağıdaki yöntem kullanılabilir.



Web.config üzerinde sağ click

Edit WCF Configuration

Açılan pencereden Bindings altındaki ilgili Binding seçildikten sonra MaxReceivedMessageSize değeri 2147483647 verilir.



İşlem tamamlandığında Web.config dosyasında bulunan binding name satırına girmiş olduğumuz değerin eklenmiş olduğu görülüyor.


        <bindings>
            <basicHttpBinding>
                <binding name="******" />
            </basicHttpBinding>
        </bindings>



  <bindings>
            <basicHttpBinding>
                <binding name="******" maxReceivedMessageSize="2147483647" />
            </basicHttpBinding>
        </bindings>


0

fontawesome .woff uzantısı ve HTTP Error 404.3 - Not Found mime hatası

Çarşamba, Eylül 17, 2014 / / ,

fontawesome .woff uzantısı ve HTTP Error 404.3 - Not Found mime hatası

fontawesome kullanılmış site yayına verildiğinde yukarıdaki  durumla karşılaşılabilir. Bu durum web.config tarafından aşağıdaki kod eklenerek giderilebilir.



<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <staticContent>
      <remove fileExtension=".svg" />
      <remove fileExtension=".eot" />
      <remove fileExtension=".woff" />
      <mimeMap fileExtension=".svg" mimeType="image/svg+xml"  />
      <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
      <mimeMap fileExtension=".woff" mimeType="application/x-woff" />
    </staticContent>
  </system.webServer> 

0

List'e 1 den fazla değişken tipi tanımlama, ekleme ve okuma

Perşembe, Ağustos 28, 2014 / / ,

List'e 1 den fazla değişken tipi tanımlama, ekleme ve okuma


//List Tuple Yöntemi
List<Tuple<string, double>> odemeListe = new List<Tuple<string, double>>(); //Listemizde string ve double tipinde iki değişken yer alacak şekilde tanımladık

odemeListe.Add(new Tuple<string, double>(odemeTusNo, odemeTutari)); //ekledik

for (int i = 0; i < odemeListe.Count; i++)
            {
                string odemedeKullanilanTus = odemeListe[i].Item1;
                double odemeTutari = odemeListe[i].Item2;
}
//okuduk

0

Veritabanında Image tipinde tutulmuş bir fotoğrafı Asp.net sayfasında göstermek

Salı, Ağustos 12, 2014 / / , ,

Veritabanında Image tipinde tutulmuş bir fotoğrafı Asp.net sayfasında göstermek için

Asp.net sayfasına bir literal kontrolü ekledikten sonra kod tarafından aşağıdaki şekilde doldurulabilir.

ltrImaj.Text = "<img src=\"data:image/jpg;base64," + Convert.ToBase64String((byte[])dr["IMAGE"]) + "\" alt=\"\" style=\"width:600px; height:430px;\" />"; 

1

ListView ile DataPager kullanımında çift tıklama sorunu

Perşembe, Ağustos 07, 2014 / / , ,

ListView ile DataPager kullanımında çift tıklama sorunu


ListView kontrolü eğer kod tarafında manuel olarak doldurulmuşsa, ListView'a bağlı DataPager genellikle çift tıklamayla sayfa değiştiriyor.
ListView'ı PagePropertiesChanged olayında yeniden doldurmak sorunu düzeltiyor.


protected void lvListe_OnPagePropertiesChanged(object sender, EventArgs e)
{
     SiparisListele();
}


Eğer ListView'ı doldururken herhangi bir DataSource kontrolü kullanılıyorsa bu sorun oluşmuyor.




0

DataTable içinde arama yapma ve bulunup bulunmama durumuna göre işlem yapma

Çarşamba, Temmuz 23, 2014 / / , ,

DataTable içinde arama ve bulunup bulunmama durumuna göre işlem yapma


//dt, veri doldurulmuş bir DataTable
                string aranacakDeger = "SiparisId = '5'"; //Arama yapılacak sütun adı ve aranacak değer
                DataRow[] drDizi = dt.Select(aranacakDeger);
                if (drDizi.Length <= 0)
                {
                    //dt içinde SiparisId isimli sütunda 5 verisi bulunamadı
                }
                else
                {
                    //dt içinde SiparisId isimli sütunda 5 verisi bulundu
                }
                dt.Dispose();

Hangi satırda bulunduğu bilgisi:

DataRow drBulunan = drDizi[0];
int bulunduguSatirIndex = dt.Rows.IndexOf(drDizi[0]);

Başka bir filtre örneği:

string aranacakDeger = "(Tarih >= #" + Convert.ToDateTime(tarih).ToString("MM/dd/yyyy") + "# And Tarih <= #" + Convert.ToDateTime(tarih).ToString("MM/dd/yyyy") + "# ) And AraziId='" + araziId + "'"; 

1

Eval ile birden fazla CommandArgument parametresi gönderme

Salı, Temmuz 22, 2014 / / , ,

Asp.net'te Eval ile birden fazla CommandArgument parametresi gönderme


 <asp:LinkButton ID="linkSec" runat="server" CommandName="Sec" CommandArgument='<%#Eval("LOGICALREF")+","+ Eval("CODE")+","+Eval("NAME")%>' OnCommand="linkSec_Command" CssClass="linkSec buton gri">Seç</asp:LinkButton>


protected void linkSec_Command(Object sender, CommandEventArgs e)
        {        
            string[] commandArgs = e.CommandArgument.ToString().Split(new char[] { ',' });
           
   string urunId = commandArgs[0];
            string urunKod = commandArgs[1];
            string urunAd = commandArgs[2];
        }

0

Veritabanında datetime olarak tutulmuş tarih alanını Asp.net'te Eval ile gösterirken formatlama şekli

Salı, Temmuz 22, 2014 / / ,

Veritabanında datetime olarak tutulmuş tarih alanını Asp.net'te Eval ile gösterirken formatlama şekli

<%#Eval("AcilisZamani","{0:dd.MM.yyyy HH:mm}") %>

22.07.2014 10:00


<%#Eval("AcilisZamani","{0:dd.MM.yyyy}") %>


22.07.2014

0

out ile 1'den fazla değer döndüren method (fonksiyon)

Çarşamba, Temmuz 02, 2014 / / ,

C#'ta out ile 1'den fazla değer döndürme aşağıdaki şekilde yapılabilir. Örnekteki metod bir parametre alıyor ve geriye iki değer döndürüyor.


public void PersonelBilgiGetir(out string boy, out string kilo, string personel) //personeli biz göndereceğiz
        {
boy = "";
kilo = "";
if (personel=="Ali") {
            boy = "165";
            kilo = "60";
}
if (personel=="Veli") {
            boy = "175";
            kilo = "70";
}
                }


Kullanacağımız zaman diyelimki herhangi bir methodun içinde aşağıdaki şekilde;

string boy, kilo;
PersonelBilgiGetir(out boy, out kilo, "Ali"); //Ali'nin bilgilerini istedik

0

.apk uzantılı dosyaları download etmeye çalışırken karşılaşılan mime type sorununu IIS'e müdahale etmeden çözmek

Pazartesi, Haziran 30, 2014 / / ,


.apk uzantılı dosyaları download etmeye çalışırken karşılaşılan mime type sorunu IIS'e müdahale etmeden web.config tarafında aşağıdaki şekilde çözülebilir



<system.webServer>
<staticContent>
<mimeMap fileExtension="apk" mimeType="application/vnd.android.package-archive" />
</staticContent>

</system.webServer>

0

C# ComboBox kontrolüne kullanıcının veri girmesini engelleme

Cuma, Haziran 27, 2014 / / ,




ComboBox'ın web uygulamalarındaki DropDownList gibi sadece içindeki verilerden seçim yapmaya izin vermesini istediğimiz durumlar için aşağıdaki ayar yapılır.


cbFirma.DropDownStyle = ComboBoxStyle.DropDownList;




0

Dinamik olarak doldurulmuş bir DataGridView kontrolüne, buton içeren yeni bir Column ekleme ve buton tıklandığında Column adına göre hücre değerini alma.

Cuma, Haziran 27, 2014 / / ,

Dinamik olarak doldurulmuş bir DataGridView kontrolüne buton için yeni bir Column ekleme;


            DataGridViewButtonColumn gridBtn = new DataGridViewButtonColumn();
            gridOdeme.Columns.Add(gridBtn);
            gridBtn.HeaderText = "İşlem";
            gridBtn.Text = "Sil";
            gridBtn.Name = "gridBtn";
            gridBtn.UseColumnTextForButtonValue = true;


Buton tıklandığında istenilen sütuna göre hücre değerini almak için;


  private void gridOdeme_CellClick(object sender, DataGridViewCellEventArgs e)
        {
             if (e.ColumnIndex==2) //butonun bulunduğu sütun sırası. Griddeki diğer sütunlar üzerinde yapılan tıklamaları dikkate almasın
{
            string odemeTanimId = gridOdeme.Rows[e.RowIndex].Cells["OdemeTanimId"].Value.ToString();
            MessageBox.Show(odemeTanimId);
}
}

   

0

C# DataGridView kontrolünde varsayılan olarak eklenen boş satırı kaldırma

Cuma, Haziran 27, 2014 / / ,

C# DataGridView kontrolünde varsayılan olarak eklenen boş satırı kaldırma


gridHareket.AllowUserToAddRows = false;

0

Asp.net uygulamalarında DropDownList kontrolünü dinamik olarak doldurma

Pazartesi, Haziran 23, 2014 / / ,

Asp.net uygulamalarında DropDownList kontrolünü dinamik olarak doldurma


            VeriMsSQL.Islem islem = new VeriMsSQL.Islem();
            DataSet ds = islem.FirmaListe();
            if (ds.Tables[0].Rows.Count > 0)
            {
                dropTalepFirma.Items.Add(new ListItem("Seçiniz ..", "0"));
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    DataRow dr = ds.Tables[0].Rows[i];
                    string firmaId = dr["FirmaId"].ToString();
                    string firmaAd = dr["FirmaAd"].ToString();
                    dropTalepFirma.Items.Add(new ListItem(firmaAd, firmaId));
                }

            }
            ds.Dispose();

0

Windows form uygulamalarında ComboBox kontrolünü dinamik olarak doldurma yöntemleri.

Pazartesi, Haziran 23, 2014 / / ,

C# Windows form uygulamalarında ComboBox kontrolünü dinamik olarak doldurma yöntemleri.

Basit kullanım;


                VeriMsSQL.Islem islem = new VeriMsSQL.Islem();
                DataSet ds = islem.IsyeriListe(Classes.Global.baglantiLogoFirmaId);
                if (ds.Tables[0].Rows.Count > 0)
                {
                    cbIsyeri.DataSource = ds.Tables[0];
                    cbIsyeri.DisplayMember = "ISYERI";
                    cbIsyeri.ValueMember = "NR";
                }
                ds.Dispose();



Asp.net'te kullanılan ListItem gibi KeyValuePair ile;

List<KeyValuePair<string, string>> secenek = new List<KeyValuePair<string, string>>();
            secenek.Add(new KeyValuePair<string, string>("-1", "İŞYERİ SEÇİNİZ.."));

                VeriMsSQL.Islem islem = new VeriMsSQL.Islem();
                DataSet ds = islem.IsyeriListe(Classes.Global.baglantiLogoFirmaId);
                if (ds.Tables[0].Rows.Count > 0)
                {
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        DataRow dr = ds.Tables[0].Rows[i];
                        string isyeriId = dr["NR"].ToString();
                        string isyeriAd = dr["ISYERI"].ToString();

                        secenek.Add(new KeyValuePair<string, string>(isyeriId, isyeriAd));
                    }
                }
                // temizle
                cbIsyeri.DataSource = null;
                cbIsyeri.Items.Clear();
                // doldur
                cbIsyeri.DataSource = new BindingSource(secenek, null);
                cbIsyeri.DisplayMember = "Value";
                cbIsyeri.ValueMember = "Key";
                ds.Dispose();


ComboBox kontrolünde KevValuePair ile seçileni almak için;

SelectedIndexChanged olayında

KeyValuePair<string, string> secilen = (KeyValuePair<string, string>)cbIsyeri.SelectedItem;
            string secilenIsyeri = secilen.Value;
            string secilenIsyeriNo = secilen.Key;

0

İki tarih arasındaki tarihleri bulma ve listeye doldurma

Salı, Haziran 17, 2014 / / ,

C#'ta iki tarih arasında kalan tarihler aşağıdaki şekilde getirilebiliyor.

DateTime startDate = dtIlkTarih.Value;
DateTime endDate = dtSonTarih.Value;
 List<DateTime> tarihListesi = new List<DateTime>();
            for (DateTime tarih = startDate; tarih <= endDate; tarih = tarih.AddDays(1))
            {
                tarihListesi.Add(tarih);
            }





0

Programı yönetici yetkileriyle çalıştırmak

Cumartesi, Haziran 14, 2014 / / ,

Windows form uygulamalarında programının yönetici yetkileriyle çalışmasını sağlamak için;

Projeye Application Manifest File ekledikten sonra dosya içerisinde varsayılan olarak gelen

<requestedExecutionLevel  level="asInvoker" uiAccess="false" />

satırını aşağıdaki satırla değiştirmek gerekiyor.

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />


Bu işlem sonrası program derlendiğinde Debug klasörü içindeki programın yönetici izni isteyen bir uygulama haline geldiği görülecektir.

0

Farklı yöntemler kullanarak program açıkken ikinci kez açılmasını engellemek

Salı, Haziran 10, 2014 / / ,

Windows uygulamalarında program eğer çalışıyorsa ikinci kez açılmasını engellemek için aşağıdaki farklı yöntemlerden projemizin yapısına uygun olanı kullanabiliriz.

1-Sistemde çalışan uygulamalar arasından ilgili isme sahip programın açıklık sayısını kontrol et.

            if (Process.GetProcessesByName("YazarKasaAktarim").Length > 1)
            {
                //zaten çalışıyor
                MessageBox.Show("Programın bir örneği şu an açık!");
            }
            else
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new frmGiris());
            }

2-Çalışan uygulamayı bul ve kapat.


            Process[] calisanIslem = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
            foreach (Process islem in calisanIslem)
            {
                if (Process.GetCurrentProcess().Id != islem.Id)
                {
                    islem.Kill();
                }
            }


3-Mutex yöntemi.


            bool yeniOlusan;
            Mutex m = new Mutex(true, "Yazar Kasa Aktarım", out yeniOlusan);
            if (!yeniOlusan)
            {
                MessageBox.Show("Programın bir örneği şu an açık!", "Yazar Kasa Aktarım");
                return;
            }



İkinci yöntemde program açıksa programı kapattığından ekranda yarım kalmış bir çalışma olabilir. Kapatıldığında kullanıcı bunları kaybetmiş olur. Programı kapatıp açmaktansa; kullancıya programın açık olduğunu söylemek ve programın yeniden açılmasını engellemek daha sağlıklı olur.


Bu yöntemlerin tamamını  aşağıdaki metod içinde kullandık.

static void Main()
        {
}

0

Windows uygulamalarinda setup projesi yapmadan debug icindeki .exe'ye icon verilmesi

Salı, Haziran 10, 2014 / / ,

Windows masaüstü uygulaması geliştirirken debug klasörü içindeki .exe dosyasına ikon vermek için



Solution Explorer'da projenin üzerinde sağ click Properties dedikten sonra açılan ekranın Application sekmesinde bulunan DefaultIcon bölümünden ikon belirleyerek build ettikten sonra işlem tamamlanıyor.

Bu işlem sonrası debug klasörü içindeki exe dosyası artık belirlenen yeni ikon ile görüntüleniyor olmalı.


0

Asp.net sayfalarında web servisine Ajax içinden parametre gönderirken alınan Failed to load resource: the server responded with a status of 500 (Internal Server Error) hatası ve çözümü

Perşembe, Haziran 05, 2014 / / , ,

Asp.net sayfalarında web servisine Ajax içinden parametre gönderirken sayfa normal yüklenmiş görünüyor olsa da web servisi ajax tarafından çağrılma esnasında aşağıdaki hatayı döndürüyor olabilir.

Failed to load resource: the server responded with a status of 500 (Internal Server Error) 

web.config dosyasına aşağıdaki handler eklendiğinde hata giderilmiş oluyor.


<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
    </system.web>
    <system.webServer>
        <handlers>
            <add name="ScriptHandlerFactory"
                 verb="*" path="*.asmx"
                 type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                 resourceType="Unspecified" />
        </handlers>
    </system.webServer>
</configuration>

0

CheckedListBox kontrolünde seçilenleri alma

Salı, Haziran 03, 2014 / / ,

CheckedListBox'ta seçilenleri almak için kontrolün Item_Check olayı aşağıdaki şekilde kullanılabilir.


        private void checkHareketTuru_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (e.NewValue == CheckState.Checked)
            {
                secilenHareketListesi.Add(checkHareketTuru.Items[e.Index].ToString());
            }
            else if (e.NewValue == CheckState.Unchecked)
            {
                secilenHareketListesi.Remove(checkHareketTuru.Items[e.Index].ToString());
            }
        }


Burada metodun dışında tanımlanmış secilenHareketListesi isimli listeye, seçimler ekleniyor ve çıkarılıyor.

0

CheckedListBox kontrolü çift tıklamayı tek tıklamaya çevirme

Salı, Haziran 03, 2014 / / ,

Windows Form uygulamalarında CheckedListBox kontrolü içindeki seçenekler tek tıklamayla seçiliyor fakat çift tıklamayla durum değiştiriyor.

Tek tıklamayla durum değiştirmek için yani webdeki bir checkbox gibi davranmasını sağlamak için CheckedListBox'un, CheckOnClick özelliğini true yapmak yeterli oluyor.


checkHareketTuru.CheckOnClick = true; 

0

ChekedListBox kontrolü içinde sadece tek seçim yapılmasını sağlama (radiobutton gibi)

Salı, Haziran 03, 2014 / / ,

Windows form uygulamalarında CheckedListBox kontrolü, çoklu seçim yapılmasına imkan verir. Bir RadioButton gibi çalışmasını yani tek seçim yapılabilir olmasını sağlamak için aşağıdaki yöntem kullanılabilir.



 private void checkHareketTuru_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (checkHareketTuru.CheckedIndices.Count > 0)
            {
                if (e.Index != checkHareketTuru.CheckedIndices[0])
                {
                    checkHareketTuru.SetItemChecked(checkHareketTuru.CheckedIndices[0], false);
                }
            }
        }

2

Asp.net MasterPage ve ContentPage olay çalışma sırası

Çarşamba, Mayıs 28, 2014 / / ,

Bir master page ve content page için event(Init,Load,PreRender) çalışma sırası.

1. Master page controls Init event.
2. Content controls Init event.
3. Master page Init event.
4. Content page Init event.
5. Content page Load event.
6. Master page Load event.
7. Content controls Load event.
8. Content page PreRender event.
9. Master page PreRender event.
10. Master page controls PreRender event.
11. Content controls PreRender event.

0

MySQL Son Eklenen Kayıt Id Bulma

Salı, Mayıs 27, 2014 / /

MySQL veritabanında son eklenen kaydın Id'sini almak için sql sorgu cümlesinin devamına aşağıdaki kod eklenebilir;

SELECT LAST_INSERT_ID();


Örnek kullanımı;

int sonEklenenId = islem.KayitScalar("INSERT INTO duyuru (duyuru_baslik,duyuru_icerik) VALUES ('" + txtBaslik.Text + "','" + txtDetay.Text + "'); SELECT LAST_INSERT_ID();");

0

MsSQL Son Eklenen Kayıt Id Bulma

Salı, Mayıs 27, 2014 / /

MsSQL veritabanında son eklenen kaydın Id'sini almak için aşağıdaki kod sql sorgu cümlesinin devamına eklenebilir.

SELECT @@IDENTITY 

Sadece ilgili connection için son eklenen id isteniyorsa

SELECT SCOPE_IDENTITY()

Örnek Kullanım;

int sonEklenenSoruId = islem.KayitEkle("INSERT INTO SinavSorulari (Soru,Cevap) VALUES ('Sorumuz','Cevabımız') SELECT @@IDENTITY"); 


SELECT @@IDENTITY ile ExecuteScalar kullanılıyor.

5

Çapraz iş parçacığı işlemi geçerli değil hatası ve çözümü

Perşembe, Mayıs 15, 2014 / / ,

Çapraz iş parçacığı işlemi geçerli değil:  denetimine oluşturulduğu iş parçacığı dışında başka bir iş parçacığından erişildi.

BackgroundWorker ile birden fazla thread çalıştırmak istenildiğinde bu hata alınabiliyor.

Aşağıdaki kod satırı InitializeComponent(); satırının üzerine eklenerek sorun giderilmiş oluyor.


 CheckForIllegalCrossThreadCalls = false;



0

DataGrid sütun genişliklerini manuel ayarlama

Perşembe, Mayıs 15, 2014 / / ,

DataGrid Column genişliği aşağıdaki kod ile ayarlanabilir. Kod, formun loadına yazılmalıdır.


  gridHareketDetay.Columns[0].Width = 50;


//DataGrid'in ilk sütununun genişliği 50

0

Bir formdan diğer formdaki methoda (fonksiyona) erişim

Çarşamba, Mayıs 14, 2014 / / ,

Windows form uygulamalarında projedeki bir formdan diğer formda yer alan methoda (fonksiyona) erişim için;

((frmMain)Application.OpenForms["frmMain"]).HareketeAitAltSatirlar();


method public olarak tanımlanmış olmalı

0

DataGrid'de bir hücrenin içindeki yazının rengini değiştirmek

Çarşamba, Mayıs 14, 2014 / / ,

Hücrenin yazı rengini değiştirmek için


gridHareket.Rows[0].Cells[12].Style.ForeColor = Color.Green;


//ilk satırın 13. sıradaki (0'dan başlar) hücrenin yazı rengi yeşil.

0

DataGrid'deki kayıtları DataTable'a aktarma

Çarşamba, Mayıs 14, 2014 / / ,

DataGrid'e doldurulan kayıtları DataTable' almak için aşağıdaki kod kullanılabilir.


DataTable dt = new DataTable();
dt = (DataTable)gridHareket.DataSource;




0

DataTable alanlarını manuel oluşturma ve DataGrid'i doldurma

Çarşamba, Mayıs 14, 2014 / / , ,

Windows Form uygulamalarında DataGrid'i doldurmak için

DataTable dt = new DataTable();
dt.Columns.Add("AD");
DataRow dr = dt.NewRow();
dr["AD"] = "Ali";
dt.Rows.Add(dr);
gridHareket.DataSource = dt;
//gridHareket.DataBind(); //web uygulamalarında databind satırına ihtiyaç var. Windows Form uygulamalarında yok.


yeterli oluyor.

1

ScriptResource.axd 404 not found hatası IIS 7 ve 7.5

Salı, Mayıs 13, 2014 / / ,

ScriptResource.axd 404 not found hatası

Lokalde çalışan ve hata vermeyen bir web projesi, sunucuya yüklendiğinde bu dosyayı bulamıyor ve yukarıdaki hatayı veriyor olabilir. Aslında bu dosya lokalde proje içinde de bulunabilecek bir dosya değil. Çalışma anında erişilebiliyor.

IIS 7 ve 7.5 da bunun 2 çözüm.

Başlat Administrative Tools altında Internet Information Server (IIS) Manager ile IIS'i  açıp
Siteler bölümünden düzenleme yapılacak site tıklanır
Handler Mappings çift tıklanır
Sağ üst köşeden
Add Managed Handler tıklanır
ve aşağıdaki alanlar aynen doldurulur
Request path: ScriptResource.axd
Type: System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
Name: ScriptResource-axd

Ok tıklanıp çıkılır.



Diğer çözüm web.config taraından.

Aşağıdaki satırı web.config dosyasında ilgili yere ekleyin.

<system.webServer>
    <handlers>
    <add name="ScriptResource-axd" path="ScriptResource.axd" verb="*" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </handlers>
</system.webServer>

0

DataGridView satır çift tıklandığında ilgili satırın değerini alma

Cumartesi, Mayıs 10, 2014 / / ,

Aşağıdaki kod DataGridView kontrolünde, satır çift tıklandığında tıklanan hücrenin değerini verir.

         private void gridHareket_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            MessageBox.Show(gridHareket.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());      
        }


Satırda hangi hücreye tıklanırsa tıklansın satır üzerinde yer alan 1 nolu hücrenin değerinin alınması için

        private void gridHareket_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            MessageBox.Show(gridHareket.SelectedRows[0].Cells[1].Value.ToString());
        }


Buradaki  Cells[1] datagridin 2. Sütununa denk gelen veriyi alır.

0

Liste içinde herhangi bir satırı arama ve o satırın, satır no'sunu alma

Cuma, Mayıs 09, 2014 / / ,

int personelinDosyadakiSatirNo = liste.IndexOf("Tamer YİĞİT");

Kaydın bulunduğu Index'i yani satır numarasını bulmak satırın bulunduğu sıradan sonra gelen kayıtları göstermek için kullanılabilir.

0

C# StreamReader kullanarak .txt uzantılı bir dosyadaki verileri List'e eklemek

Cuma, Mayıs 09, 2014 / / ,

C# StreamReader kullanarak .txt uzantılı bir dosyadaki verileri List'e eklemek için  


string satir;
List<string> liste = new List<string>();
string okunacakDosya = "test.txt";
           liste.Clear();
            StreamReader oku = new StreamReader(@"" + okunacakDosya + "");
            satir = oku.ReadLine();
            while (satir != null)
            {
                liste.Add(satir); //satır null gelmediği sürece listeye ekle
                satir = oku.ReadLine();
            }

            int okunanSatirSayisi = liste.Count; //listedeki satır sayısına ulaştık





0

DataGrid'de satırın tamamını seçili yapmak

Çarşamba, Mayıs 07, 2014 / / ,

Masaüstü uygulamalarında DataGridView içindeki hücreler tıklandığında yalnızca o hücrenin seçilmesi yerine ilgili satırın tamamının seçilmesini sağlamak için

DataGridView1.SelectionMode =  DataGridViewSelectionMode.FullRowSelect;

kullanılabilir.

2

Windows Form uygulamalarında formu ekranın ortasında çıkarmak

Çarşamba, Mayıs 07, 2014 / / ,

Windows Form uygulamalarında formu ekranın ortasında açmak için formun StartPosition özelliğini CenterScreen olarak belirlemek yeterli oluyor.

2

DataGridView sütunlarını grid'in genişliği kadar otomatik genişletmek

Çarşamba, Mayıs 07, 2014 / / ,

DataGridView sütunlarını grid'in genişliği kadar otomatik genişletmek için aşağıdaki kodlar kullanılabilir.

this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

0

Windows Form uygulamalarında seperatör ayraç yapımı

Salı, Mayıs 06, 2014 / / ,



Windows Form uygulamalarında resimdeki gibi ayraçlar yapabilmek için Label kontrolü kullanılabilir. Label'e aşağıdaki özellikleri vererek istenilen görünüm elde ediliyor.

label1.AutoSize = false;
label1.Height = 2;
label1.BorderStyle = BorderStyle.Fixed3D; 



0

Masaüstü uygulamalarında .ico ölçüsünden doğan hata ve çözümü

Pazartesi, Mayıs 05, 2014 / / ,

C# masaüstü uygulamalarında formun sol üst köşesine ikon eklemeye çalışırken ikonun uzantısı .ico olmasına rağmen aşağıdaki hatayı alınabilir.


Argument 'picture' must be a picture that can be used as an Icon

İkonum 14x14 ölçülerindeydi. 16x16 olacak şekilde yeni bir ikon hazırladım. Sorun kalmadı. 1ikon ölçüsü 16 ve katları şeklinde olmalı.

0

C# yeni form açma ve yeni açılan formu kapatmadan önceki forma erişimi engelleme

Pazartesi, Mayıs 05, 2014 / / ,

C# ile masaüstü uygulamaları geliştirirken yeni bir form açtırmak için

Form2 yeniForm = new Form2();
yeniForm.Show();

kullanılıyor. Buradaki Form2, formu oluştururken verilen isim. Eğer formumuzun adı Ayar.cs olsaydı

Ayar yeniForm = new Ayar();
yeniForm.Show();

şeklinde çağıracaktık.


Bir de açılan form kapatılmadan altta kalan forma erişilmesin isteniyorsa o zaman

yeniForm.Show();

yerine

yeniForm.ShowDialog();

kullanacaktık.

0

İndirimli fiyat hesaplama ve eval ile kullanımı

Cumartesi, Mayıs 03, 2014 / / , ,

Şehir fırsatı siteleri veya alışveriş sitelerinde sıklıkla kullanılan indirimli fiyat işinin eval ile kullanımı.


<%# (100 - Convert.ToDecimal(Eval("SalesPrice")) * 100 / Convert.ToDecimal(Eval("Price"))).ToString("0") %>

1

Yapılandırma sistemi başlatılamadı

Cuma, Mayıs 02, 2014 / / ,


AppConfig dosyası üzerinden ConnectionString yapılmaya çalışıldığında tüm ayarlarınız doğru olmasına rağmen "Yapılandırma sistemi başlatılamadı" veya Configuration System Failed To Initialize" hatasını alıyor olabilirsiniz.

Bu durumda appconfig dosyası içerisindeki <configSections> tagını <connectionStrings> tagının üstüne alarak deneyin.

Örnek appconfig şu şekilde başlamalı.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
////////kodlarınız
    </configSections>
  <connectionStrings>
////////kodlarınız
  </connectionStrings>
....

0

Tamer Yiğit yağlı boya resim çalışmaları

Çarşamba, Nisan 30, 2014 / /
SON YORUMLAR