Şimdi Ara

C# ta Textbox tan veri çekiyorum fakat database de düzenleyemiyorum

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
10
Cevap
0
Favori
3.179
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba.Programlama işine yeni girdim ve biryerde takıldım yardımınıza ihtiyacım var. Bir üye düzenleme sayfası yazdım. Sorunsuz çalışıyor fakat textbox lara databaseden veri çekip databasedeki verileri yazdırmak istedim. Yazdırdım fakat şöyle bir sorun çıktı ortaya. Textbox ın içindeki veriyi düzenleyip kaydetmek istediğimde önceden textbox a databasedeki veriyi aldığı için yeni yazdığımı kabul edip databaseden veriyi değiştirmiyor. Textbox a önceki databaseden çektiği veriyi yazmışım gibi görüyor ve düzenleme yapamıyorum. Textboxlara databaseden verileri çekmesem sorunsuz çalışıyor ama verileri textbox a çekmem gerek. Yardımcı olurmusunuz ?

    Kodlar:
      protected void Page_Load(object sender, EventArgs e) 
    {

    bool loggedin = Convert.ToBoolean(Session["LoggedIn"]);
    if (loggedin == false)
    {
    Response.Redirect("../Redirect.aspx");
    }

    int access = Convert.ToInt32(Session["AccessID"]);
    if (access == 1)
    {
    Response.Redirect("../Redirect.aspx");
    }

    if (access == 2)
    {
    Response.Redirect("../Redirect.aspx");
    }
    int x = Convert.ToInt32(Request.QueryString["id"]);
    SqlConnection conn = new SqlConnection();
    conn.ConnectionString = "Server=(local);Database=TRY;Trusted_Connection=True;";
    conn.Open();
    SqlCommand com = new SqlCommand("select * From Users Where Id = " + x.ToString(), conn);
    SqlDataReader reader = com.ExecuteReader();
    if (reader.Read())
    {
    TxtUsr.Text = reader["Username"].ToString();
    TxtPass.Text = reader["Password"].ToString();
    TxtEmail.Text = reader["Email"].ToString();
    }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
    int x = System.Convert.ToInt32(Request.QueryString["id"]);
    SqlConnection conn = new SqlConnection();
    conn.ConnectionString = "Server=(local);Database=TRY;Trusted_Connection=True;";
    conn.Open();
    SqlCommand com = new SqlCommand("select * from Users", conn);
    SqlDataReader reader = com.ExecuteReader();


    com.CommandText = "UPDATE USERS SET Username = '" + TxtUsr.Text + "' Where Id = '" + x.ToString() + "'";
    reader.Close();
    com.ExecuteNonQuery();
    com.CommandText = "UPDATE USERS SET Password = '" + TxtPass.Text + "' Where Id = '" + x.ToString() + "'";
    com.ExecuteNonQuery();
    com.CommandText = "UPDATE USERS SET Email = '" + TxtEmail.Text + "' Where Id = '" + x.ToString() + "'";
    com.ExecuteNonQuery();



    if ( passive.Enabled )
    {

    com.CommandText = "UPDATE USERS SET AccessID = '" + "1" + "' Where Id = '" + x.ToString() + "'";
    com.ExecuteNonQuery();

    }

    if (active.Enabled)
    {

    com.CommandText = "UPDATE USERS SET AccessID = '" + "2" + "' Where Id = '" + x.ToString() + "'";
    com.ExecuteNonQuery();

    }

    if (adminrad.Enabled)
    {

    com.CommandText = "UPDATE USERS SET AccessID = '" + "3" + "' Where Id = '" + x.ToString() + "'";
    com.ExecuteNonQuery();

    }

    Response.Redirect("users.aspx");

    }







  • Tabiki önceki verileri kaydeder sistem. Sen Güncelle yaptırdığında sayfa gene Load oluyor. Senin yaptığın değişiklikler gidiyor. Databasedeki deki veriler ile doluyor textbox ların. Daha sonra da update oluyor ama bir şey farketmiyor. Sana ip ucunu verdim çözüm yolu basit biraz ugraş çözersin işin bu kadarını yaptıktan sonra.
  • Yardım için teşekkürler fakat bu anlattıklarınızın farkındayım. Ama çözemiyorum bir türlü. Button_Click in başına Textbox = !null koydum oda bir çözüm olmadı. Hala beklemedeyim.



    < Bu mesaj bu kişi tarafından değiştirildi SainTx -- 6 Eylül 2011; 14:13:44 >
  • Aşağıdaki şekilde kullanabilrisin Session ile kullanabilirsin

    protected void Page_Load(object sender, EventArgs e)
    {

    bool loggedin = Convert.ToBoolean(Session["LoggedIn"]);
    if (loggedin == false)
    {
    Response.Redirect("../Redirect.aspx");
    }

    int access = Convert.ToInt32(Session["AccessID"]);
    if (access == 1)
    {
    Response.Redirect("../Redirect.aspx");
    }

    if (access == 2)
    {
    Response.Redirect("../Redirect.aspx");
    }



    if (Session["durum"] == null)
    {

    Session["durum"] ="ok";
    int x = Convert.ToInt32(Request.QueryString["id"]);
    SqlConnection conn = new SqlConnection();
    conn.ConnectionString = "Server=(local);Database=TRY;Trusted_Connection=True;";
    conn.Open();
    SqlCommand com = new SqlCommand("select * From Users Where Id = " + x.ToString(), conn);
    SqlDataReader reader = com.ExecuteReader();
    if (reader.Read())
    {
    TxtUsr.Text = reader["Username"].ToString();
    TxtPass.Text = reader["Password"].ToString();
    TxtEmail.Text = reader["Email"].ToString();
    }
    }
    }




  • Yardım için Çok Teşekkürler. Bunu nasıl akıl edemedim çok şaşırdım şuanda benim için çok mesafe kat ettirdi bu yardım tekrar teşekkürler :)



    < Bu mesaj bu kişi tarafından değiştirildi SainTx -- 6 Eylül 2011; 14:43:05 >
  • Ben de sunu soyleyeyim. Tek query de halledebilcedegin bir seyi 3 farkli query de yapmissin. O kismi duzeltsen senin icin iyi olur
  • Evet aralarına AND koyarak tek queryde halledicem onu fakat fırsat bulamadım.
  • Rica ederim
  • arkadaşlar doğru söylemiş butona her bastığında sayfa tekrar yükleniyor ve formun loadında veritabanında bilgi çekme olduu için bilgiler veritabanından tekrar geliyor ancak butonun altındaki kodları sayfanın veritabanından bilgi getirme kodlarının üstüne yazarsan problem çözülecektir böylece sayfa yüklendiğinde önce bilgileri düzenleyecek sonra onları textboxa yazacaktır
  • Kodları çok iyi incelemedim ama verilen cevaplara bakarak pageload'a if (!Page.IsPostBack) yaparakda sorun hallolur gibi geldi bana.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.