none
Asp.Net Gridview Edit ve Update Komutları RRS feed

  • Soru

  • Merhaba arkadaşlar , iyi çalışmalar hepinize.3.sınıf Bilgisahar Mühendisliği öğrencisiyim...

    Ufak bir okul projesi üstünde çalışıyorum.Kullanıcıya edit,update ve delete yaptırmak istediğim bir table ım var gridview ile bunu çekiyorum görüntülüyorum (GENERATE Edit,Update,Delete seçeneği seçilemiyor bu arada )

    fakat edit,update ve delete olayını yapamıyorum.Kendim çeşitli kodlar denedim 

    (bknz. http://www.c-sharpcorner.com/uploadfile/00c99e/gridview-events-for-beginners/)

    fakat olmuyor sadece görüntüleyebiliyorum... Ne yapmalıyım sizce ? teşekkürler...


    • Düzenleyen eternity11 30 Aralık 2012 Pazar 00:47
    30 Aralık 2012 Pazar 00:37

Yanıtlar

Tüm Yanıtlar

  • Selamlar;

    http://social.msdn.microsoft.com/Forums/tr-TR/aspnettr/thread/18976aef-42a0-499d-ae7a-47782bfc2eb0

    Burayı bir inceleyin. Öncelikle dikkat etmeniz gereken şey tablolarnızda unique identity bir PRIMARY key olmasıdır. Eğer primary key(ID) yok ise ADO.Net neyi sileceğini yada editleyeceğini tam kestiremez, bunun için silme ve değiştirme kodlarını oluşturamaz. Verdiğim linkte ekleme silme ve değiştirme yok ama o duruma kadar getirirseniz kendiniz ekleyebilirsiniz.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    30 Aralık 2012 Pazar 09:28
    Moderatör
  • Bu kötü oldu çünkü tablomda primary key kullanmama luzum yok.Peki farklı yollarla (gridview harici veri görüntüleyicilerle) yapabilirmiyim bunu ? id isimli bir sutün ekleyip buna otomatik 1-2-3 olarak atama yaptırdım ama bunu primary yapmamıştım , yapsam edit,delete yapmaya izin verirmi acaba gridview ?
    30 Aralık 2012 Pazar 11:13
  • Eğer Primary Key ' e gerek yok diye düşünüyorsanız database yapısı hakkındaki bilgilerinizi yenileyiniz. Çünkü ekleme silme çıkarma ve değiştirme işlemleri yapılacak her tablo için primary key gereklidir. Tablodaki kayıtlarınıza benzersiz bir kimlik no vermezseniz ve bunu database e bildirmezseniz veri bütünlüğünü garanti edemezsiniz.

    Düz text dosyası da bir database dir ama veri bütünlüğü, sıralama, arama vs vs. gibi bir çok özelliğe cevap veremediği için Database yazılımları üretilmiştir.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC


    30 Aralık 2012 Pazar 12:49
    Moderatör
  • Kesinlikle haklısınız.ID isimli bir sütun ekledim otomatik sayı ataması yaptım , primary key olarak belirledim işlemimi gerçekleştirdim.Farklı bir sorum var şimdide :) Umarım meşgul etmiyorumdur sizi...

    1-)Sayfamda butona basıldığında içinde gridview'imin bulunduğu panel'in gözükmesini istiyorum. Page_load event'inin içine panel1.visible=false; diyorum , daha sonra button_click event'inin içine panel1.visible=true; diyorum fakat gridview üzerinde edit veya delete 'e basıldığında otomatik visible false oluyor page_load'a geçiyor sanırım kayboluyor grid_view'im .... 

    2-)Programımın ana sayfasında üst kısımda studentno girildiğinde aşağıda panel beliriyor..Sıkıntım studentno girildikten sonra search butonuna iki kere basmam gerekiyor.İlk search butonuna bastığımda kum saati beliriyor tetikliyor birşeyleri ikincisinde bilgiler textbox'lara doluyor...

    Kodlarım bu şekilde...

    protected void Page_Load(object sender, EventArgs e)
        {
            Panel1.Visible = true;
            if (Session["studentno"] != null)
            {
                Panel1.Visible = true;
                SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");
                SqlCommand cmd = new SqlCommand("select * from maininfo where studentno=@studentno", con);
                cmd.Parameters.Add("@studentno", Session["studentno"]);
                con.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    TextBox2.Text = dr["studentname"].ToString();
                    TextBox3.Text = dr["studentsurname"].ToString();
                    TextBox4.Text = dr["sex"].ToString();
                    TextBox5.Text = dr["borndate"].ToString();
                    TextBox6.Text = dr["facultyname"].ToString();
                    TextBox7.Text = dr["departmentname"].ToString();
               }
            }
            }

        protected void searchbutton_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");
            SqlCommand cmd = new SqlCommand("select * from maininfo where studentno=@studentno", con);
            cmd.Parameters.Add("@studentno", TextBox1.Text);
            con.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                Session["studentno"] = Convert.ToInt32(dr["studentno"]);
            }
            else
            {
                Response.Write("Student does not exist");
            }

    }

    Çok teşekkür ederim şimdiden

    30 Aralık 2012 Pazar 14:57
  • page load bölümündeki kodlarınızı aşağıdaki gibi bloklayınız.

    if(!IsPostBack)

    {

    kodlarınız

    }


    burhansuleymanvural@windowslive.com

    30 Aralık 2012 Pazar 15:09
  • Olmadı.Hatta öyleki studentno 'yu ne girersem gireyim ilk aldığı öğrenci bilgilerini gösterdi sürekli
    • Düzenleyen eternity11 30 Aralık 2012 Pazar 15:39
    30 Aralık 2012 Pazar 15:38
  • Bu kullandığınız yöntemler yanlış. Çok zorluk çekersiniz. Dataset, Linq2SQL yada EF gibi bir veri erişim katmanı kullanın. Button un altına connection string yazıp reader ile okumak ASP.Net değildir. Okuduğunuz makale sizi yanlış yönlendirmiş şu yukarıda yapmak istediğiniz şey normalde 2 yada 3 satırdır.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    30 Aralık 2012 Pazar 19:52
    Moderatör
  • ASP.NET tecrübem sadece 7 günlük :) Yukarıda yazdığım kodlarıda yine internette asp.net eğitimi adı altındaki videolardan alarak yaptım.Yukarıda yazdığım kodlara alternatif olarak tavsiyeniz nedir peki? 

    Ana Sayfam bu şekilde:

    http://img843.imageshack.us/img843/4735/81645042.jpg

    Burada üst kısımda studentno girip search yaptığımda iki kere tıklamam gerekiyor panele bilgilerin dolması için :( 
    • Düzenleyen eternity11 31 Aralık 2012 Pazartesi 01:24
    31 Aralık 2012 Pazartesi 00:58
  • saat 03:00 e kadar uğraşmışsınız, profilimde facebook bağlantım var bana ulaşabilirseniz yardımcı olalım

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    31 Aralık 2012 Pazartesi 07:54
    Moderatör
  • saat 03:00 e kadar uğraşmışsınız, profilimde facebook bağlantım var bana ulaşabilirseniz yardımcı olalım

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    teşekkürler ilginize , msn kullanıyormusunuz acaba ? 
    31 Aralık 2012 Pazartesi 11:18
  • Arkadaşlar yaptığım website projesini (VS 2010 Ultimate) local çalıştırıp test ettim fakat bunu farklı bilgisayardada açabilmem için ne yapmam gerekiyor acaba ? 
    1 Ocak 2013 Salı 18:04
    • Düzenleyen makul 1 Ocak 2013 Salı 19:09
    1 Ocak 2013 Salı 19:08
  • Sağolun denedim ama çalıştıramadım yani projenin olduğu dizine atın yeterli diyor ama yapamadım...
    2 Ocak 2013 Çarşamba 00:23
  • veritabanından olabilirmi, localdatabase kullanman lazım sanırım
    2 Ocak 2013 Çarşamba 07:08
  • veritabanından olabilirmi, localdatabase kullanman lazım sanırım

    Bilemiyorum proje adı website2 aynı dizindeydiler çalıştırdım kendi sayfasını açıyor program tanıtımı felan çıkıyor :) 

    Bende farklı yöntem bulamadım öyle kaldım :( 

    2 Ocak 2013 Çarşamba 23:35
  • IIS kullanılabilirmi acaba ? 
    3 Ocak 2013 Perşembe 00:06