none
c# kullanıcı id takip RRS feed

  • Soru

  • arkadaşlar yapacağım yazılımda kullanıcı bazlı kayıt ve listeleme yapmak istiyorum.Örneğin NEVZAT kullanıcısı ile programa girildi(kullanıcıları önce veritabanına kaydediyorum) form kayıt ederken kendi idsi veya adıyla veritabanına gitsin ve datagridviewde data cekerken o kullanıcının dataları gelsin veya sadece o kullanıcı kendi datasını düzeltsin gibi işlem yapacağım.kurguyu ben kuramadım.yardımcı olursanız seviniri.
    5 Eylül 2018 Çarşamba 11:13

Yanıtlar

  •         private void button1_Click(object sender, EventArgs e)
            {
                //bu button kullanıcı giriş button'u 
                //bu kısımda sql sorgusunda kullanıcı bilgilerini kontrol edin 
                //kullanıcı bilgisi var ise sql serverden kullanıcının id'sini alın 
                //ve gelen id form2' şu şekilde aktarıyoruz
    
                Form2 form2 = new Form2(); //burda diğer formu tanımlıyoruz
                int id = 1;
                form2.textBox1.Text = Convert.ToString(id); //burda form2deki textBox1'e id değerini veriyoruz.
                form2.Show(); 
                
            }

    • Yanıt Olarak İşaretleyen nevzat123 5 Eylül 2018 Çarşamba 13:23
    5 Eylül 2018 Çarşamba 12:40
  • if (dr.Read())
                {
                    user.sifre1 = (dr["sifre1"]);
                    user.KullaniciId1 = Convert.ToInt32(dr["KullaniciId1 "]);
    /*Diğer kısımlarıda bu şekilde ekleyin*/
                    frm.Show();
                               
                }
    

    Sonrasında MainForm altında bu classı kullandığınızı varsayalım ;

    User user = new User();
    //Şeklinde tanımlamanız gerekir.

    artık  User classınıza bu form içerisinde user.Sifre1 / user.KullanıcıId1 // user.****/ user.*** 
    diyerek ulaşabilir ve içerisindeki değerleri okuyabilir , güncelleyebilirsiniz . 


    Altan Özdemir

    • Yanıt Olarak İşaretleyen nevzat123 6 Eylül 2018 Perşembe 08:56
    6 Eylül 2018 Perşembe 08:09

Tüm Yanıtlar

  • Öncelikle düz mantık ile anlatıyorum. Bir tane Kayıt formu oluşturun kullanıcıların girdiği bilgileri veritabanına kayıt edin daha sonrasında bir giriş ekranı yapın kullanıcı giriş ekranında girdiği bilgileri veritabanından kontrol edin kayıt var ise kullanıcının id'sini giriş yapıldıkdan sonraki açılıcak form sayfasında bir label veya textbox'a kullanıcının id'sini atayın ve textbox'in veya label'in visiable özelliğini false yapınki kullanıcılar idlerini görmesinler.Tüm işlemler giriş yapıldıkdan sonraki form sayfasında yapılacak ise atadığınız id'yi tüm sorgularınız'da kullanabilirsiniz böylelikle tüm işlemler kullanıcı bazlı olur. Eğer giriş yapıldıktan sonraki formda belirli işlemleri yapıp daha sonra başka bir formda işlem yapıcaksanız diğer formada aynı şekilde id'i göndermeniz gerekir.

    Ek olarak Devexpress kullanıyorsanız RibbonForm oluşturup id'i tek bir yerden kontrol edebilirsiniz.

    5 Eylül 2018 Çarşamba 11:37
  • Select * from personel Where PersonelAd Like '% NEVZAT%'  where ile kısıltlama yapabilirsin.
    
    Güncelleme işlemi de
    
    update Personel set GüncellenecekYer=AtanacakYer where PersonelAd Like '%NEVZAT%' and GüncelleneceğinId



    Id'lerle Çalışırsanız daha olumlu ve kolay yol sağlamış olursunuz. Nevzat ile ararsanız Nevzat tek diye personel var birde nevzat123 var bu şekilde arartırsanız bütün nevzatları çekmiş olursunuz. 


    5 Eylül 2018 Çarşamba 11:44
  • Bunu sorguyu logindeki giriş yapan kullanıcı ile nasıl eşleştireceğim.Sonucta giriş yapan üyeyi bir yere kaydetmem gerekli değilmi ona göre sql yazayım.
    5 Eylül 2018 Çarşamba 11:46
  • Teşekkür ederim.Devexpress kullanmıyorum.İd yi label ve textboxa nasıl atayıp taşıyacağım.yani o idyi form form nasıl gezdireceğim.?
    5 Eylül 2018 Çarşamba 11:54
  •         private void button1_Click(object sender, EventArgs e)
            {
                //bu button kullanıcı giriş button'u 
                //bu kısımda sql sorgusunda kullanıcı bilgilerini kontrol edin 
                //kullanıcı bilgisi var ise sql serverden kullanıcının id'sini alın 
                //ve gelen id form2' şu şekilde aktarıyoruz
    
                Form2 form2 = new Form2(); //burda diğer formu tanımlıyoruz
                int id = 1;
                form2.textBox1.Text = Convert.ToString(id); //burda form2deki textBox1'e id değerini veriyoruz.
                form2.Show(); 
                
            }

    • Yanıt Olarak İşaretleyen nevzat123 5 Eylül 2018 Çarşamba 13:23
    5 Eylül 2018 Çarşamba 12:40
  • Çok teşekkür ederim.Deneyip sonuıç hakkında bilgilendireceğim.
    5 Eylül 2018 Çarşamba 13:23
  • Ayrıca buraki int id=1 için sql komutu yazmamız gerekir değil mi?
    5 Eylül 2018 Çarşamba 13:50
  •    private void button1_Click(object sender, EventArgs e)
            {


                string ad = textBox1.Text;
                string sifre = textBox2.Text;


                con = new OleDbConnection("Provider=sqloledb;Data Source=xxx;Initial Catalog=DENEME;User ID=xa;password=123456;");
                cmd = new OleDbCommand();
                con.Open();
                cmd.Connection = con;
                cmd.CommandText = "SELECT * FROM kullanicilar where kadi='" + textBox1.Text + "' AND sifre='" + textBox2.Text + "'";

                dr = cmd.ExecuteReader();
                if (dr.Read())
                {
                    frm.Show();

     }
                else
                {
                    MessageBox.Show("Kullanıcı adı ya da şifre yanlış");
                }

                con.Close();






            }

    ekran login ekranının giriş butonunun altındaki kodlar

                                                                                                                
    5 Eylül 2018 Çarşamba 14:20
  • Evet id değerine giriş yapan kullanıcının sql'deki id değerini vermelisiniz.
    5 Eylül 2018 Çarşamba 14:20
  • Merhabalar yukarıda denilen labele aktarın visible yapın olayı işinizi görür ama daha iyi bir  çözüm ile size tavsiyem User classı açıp içerisine user tablonuzda yer alan tüm kolonları birer property olarak açmanız ve  forma giriş esnasında girişi yapılan kullanıcı bilgilerini bu class içerisinde saklamanız . Mantıken düşünüldüğünde label  ya da herhangi bir form nesnesi içerisinde veri saklayıp oradan o veriyi almak pek hoş bir şey olmadığı gibi yönetilebilir bir yapıda olmayacaktır . OOP kurallarına uyarak kod geliştirmeyi öğrenmeniz açısından bilgileri bir class içerisinde saklamanızı tavsiye ederim. 


    Altan Özdemir

    5 Eylül 2018 Çarşamba 14:45
  • Altan Bey,

    class konusunda biraz zayıfım.yani classda veri nasıl tutulur diğer formlara nasıl taşınır.bu konuda yardımcı olursanız örnekle bana çok yardımcı olursunuz sizden ricam

    5 Eylül 2018 Çarşamba 16:58
  • Bu linke tıklayarak classlar ile ilgili temel bilgileri basit örnekler ile anlayabilirsin . Yavaş ve dikkatli okuyun , sayfanın sağ alt kısmında sonraki kısma geç diyerek classlar konusunu bitirin . 

    Altan Özdemir

    6 Eylül 2018 Perşembe 06:26
  • user class diye bir global class olusturdum.

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace ARIZA_TAKIP
    {
        public class user
        {


            public static int KullaniciId1 { get; set; }
            public static string KullaniciAdi1 { get; set; }
            public static string KullaniciSoyAdi1 { get; set; }
            public static string sifre1 { get; set; }
            public static string kadi1 { get; set; }
        }
    }


    ve login ekranının altındaki kodlarda aşağıdaki gibidir.

    public static Ana_Form frm = new Ana_Form();
            
            
            OleDbConnection con;
            OleDbCommand cmd;
            OleDbDataReader dr;
          
            public LOGIN()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {


                

                con = new OleDbConnection("Provider=sqloledb;Data Source=ABC;Initial Catalog=DENEME;User ID=11;password=11;");
                cmd = new OleDbCommand();
                con.Open();
                cmd.Connection = con;
                cmd.CommandText = "SELECT * FROM kullanicilar where kadi='" + textBox1.Text + "' AND sifre='" + textBox2.Text + "'";

                dr = cmd.ExecuteReader();

                if (dr.Read())
                {
                    frm.Show();
                    user.sifre1 = textBox2.Text;            

                }
                else
                {
                    MessageBox.Show("Kullanıcı adı ya da şifre yanlış");
                }

                con.Close();

    şimdi bu class ile login ekranı altındaki form arasındaki bagı nasıl kurup veriyi classda tutup tasıyacagım.yardımcı olursanız çok sevinirim.

    6 Eylül 2018 Perşembe 07:58
  • if (dr.Read())
                {
                    user.sifre1 = (dr["sifre1"]);
                    user.KullaniciId1 = Convert.ToInt32(dr["KullaniciId1 "]);
    /*Diğer kısımlarıda bu şekilde ekleyin*/
                    frm.Show();
                               
                }
    

    Sonrasında MainForm altında bu classı kullandığınızı varsayalım ;

    User user = new User();
    //Şeklinde tanımlamanız gerekir.

    artık  User classınıza bu form içerisinde user.Sifre1 / user.KullanıcıId1 // user.****/ user.*** 
    diyerek ulaşabilir ve içerisindeki değerleri okuyabilir , güncelleyebilirsiniz . 


    Altan Özdemir

    • Yanıt Olarak İşaretleyen nevzat123 6 Eylül 2018 Perşembe 08:56
    6 Eylül 2018 Perşembe 08:09
  • Ek olarak classı giriş formu altında değlide daha global olan solution kısmında projene sağ tık add > class diyerek açman daha rahat kullanım sağlar .

    Altan Özdemir

    6 Eylül 2018 Perşembe 08:12
  • Çok teşekkür ederim oldu.
    6 Eylül 2018 Perşembe 08:56