DB'den kayıt okuma ve kayıt kontrolü..

Delphi .net ve .net ile ilgili konuları buraya yazabilirsiniz.
meren
Üye
Mesajlar: 71
Kayıt: 20 Ara 2004 03:44

DB'den kayıt okuma ve kayıt kontrolü..

Mesaj gönderen meren »

Merhaba arkadaşlar,
ben bu kullanıcı adı şifresi bölümü yaptım

Kullanıcı adı :
şifresi :

buraya girilen bilgileri içeride userdb.mdb ye kaydettiriyorum girilen şifreyi md5 yapıp veritabanına kaydediyorum.. şimdi kayıtlı kullanıcı login olurken ben database'e odaklanıp şifre kontrol yaptırmak istiyorum (delphi 2005) bunun için ne yapmam gerekiyor.. diğer delphilerde örnek veriyorum Table1.Locate..... şeklinde bakabiliyorduk şimdi nasıl yapabilirim bu konuda fikri olan varmı acaba arkadaşlar

yani mesela diyecezki..
girilen şifre Textbox1.text eşitmidir? database'deki şifreye gibi?

onun dışında kayıt kontrolüda yaptıracam bu sayede örnek veriyorum
KulKodu diye bişi var, kaydet dediğimde bakıcak DB ye kulkodu daha önceden varsa böyle bir kullanıcı kodu var başka kod seçiniz diyecek.. yada daha önceden kaydetmişsiniz gibi bişi dedirttirecem ama buradaki DB'den veri okuma o anki veriyi okumayı yapamadım bir türlü:(( lütfen arkadaşlar yardımlarınızı bekliyorum.

Herkeze saygılar, sevgiler.

Mesut EREN
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

muhtemelen kullanıcı adı alanın unique bir alandır.

Kod: Tümünü seç

select sifre from users where kullaniciadi = 'xxx'
gibi şifreyi öğrenirsin.
DeveloperToolKit

..::|YeşilMavi|::..
meren
Üye
Mesajlar: 71
Kayıt: 20 Ara 2004 03:44

Mesaj gönderen meren »

doğru hocam olabilir o $ekilde ama tam olarak yapamadım i$te örnek bir çalı$ma varmı bunun gibi elinizde? birde bu tam olarak locate komutu yerine geçmiyor sanırım, sql ile mi yapıcaz?

Saygılar,
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

delphi.net ile çalışmadım ama aşağıdaki c# kodunu kendine uyarlarsın.

Kod: Tümünü seç

SqlConnection DBConn = new SqlConnection("xxxxxxx");
DBConn.Open();
string sql;
sql = "select * from TABLE where KULLANICI_ADI = '" + txtUserName + "' and txtSIFRE = '" + Password + "'";
SqlDataAdapter da_rc = new SqlDataAdapter(sql, DBConn);
DataSet ds_rc = new DataSet();
da_rc.Fill(ds_rc, "TABLE");
DBConn.DBClose();
if (ds_rc.Tables["TABLE"].Rows.Count != 1)  // kayıt döndümü
   return 0;
else
   return (int)ds_rc.Tables["TABLE"].Rows[0][0];  // kullanıcı id
DeveloperToolKit

..::|YeşilMavi|::..
meren
Üye
Mesajlar: 71
Kayıt: 20 Ara 2004 03:44

Mesaj gönderen meren »

evet kendime uyarlamaya çalıştım hocam.. fakat şu
SQL sorgusu içerisindeki bu " (tırnak) ve ' işaretlerini mi yanlış kullanıyorum acaba ya:( sözdizimi hatası verip duruo


Saygılarımla,
meren
Üye
Mesajlar: 71
Kayıt: 20 Ara 2004 03:44

Mesaj gönderen meren »

arkadaşlar bir türlü beceremedim ya :( altı üstü kullanıcı adını ve şifresini database'de doğrulayıp login yaptıracam amma beceriksizim :( arkadaşlar delphi.net de daha önce böyle bir sorgualma yada buna benzer bir sorgulama yapan yokmu :cry:


Saygılarımla,
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

makale kısmın da command adlı makaleyi okumanı öneririm
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

Mesaj gönderen ademcicek »

Kod: Tümünü seç

procedure TWebForm1.btnGiris_Click(sender: System.object;
  e: System.EventArgs);
const
  CnStr =
    'user id=sa;data source=Admin;persist security info=False;initial catalog=WebStok';
  SS = 'SELECT * FROM dbo.COMKULLANICI';
var
  SqlCn: SqlConnection;
  SqlDA: SqlDataAdapter;
  ds: DataSet;
  S: &string;
  dt: DataTable;
  C: Integer;
begin
  if not ((tbKullanici.Text = '') and (tbSifre.Text = '')) then
  begin
    S := SS + ' WHERE AD=''' + tbKullanici.Text + ''' AND SIFRE=''' +
      tbSifre.Text
      + '''';
    SqlCn := SqlConnection.Create(CnStr);
    SqlDA := SqlDataAdapter.Create(S, SqlCn);
    ds := DataSet.Create;
    SqlDA.Fill(ds, 'dbo.COMKULLANICI');
    dt := ds.Tables['dbo.COMKULLANICI'];
    DataBind;
    C := dt.Rows.Count;

    if c = 1 then
    begin
      if IsPostBack then
        Response.Redirect(System.string.Format(c_UrlStr, [tbKullanici.Text,
          tbSifre.Text]));
    end
    else
    begin
      SqlCn.Close;
      Durum.Text := 'Kullanıcı Adı Yada Şifre Yanlış';
    end;
  end;
end;
ben böyle yapmıştım.en son kullandığımda çalışıyordu.
meren
Üye
Mesajlar: 71
Kayıt: 20 Ara 2004 03:44

Mesaj gönderen meren »

evet hocam benim sorunuma benzer bir makale buldum fakat burada bir nokta var onu nasıl değiştirebiliriz?

viewtopic.php?t=11408

procedure TWebForm2.Button1_Click(sender: System.Object; e: System.EventArgs);
Var
MyConnect:OleDBConnection;
MyCommand:OleDBCommand;
i:integer;
begin
//Bağlantıyı oluştur
MyConnect:=oleDbConnection.Create('Provider=microsoft.Jet.OLEDB.4.0;'+'data source='+Server.MapPath('/MyLoginProc/Data/Data.mdb'));
MyConnect.Open;
// bir seçim sorgusu oluşturalım. ihtiyacımız olan bir Command nesnesi
MyCommand := oleDbCommand.Create ( 'SELECT Count(*) as Toplam FROM KULLANICILAR where USERNAME='+#39+TextBox1.Text+#39+' And PASSWORD='+#39+TextBox2.Text+#39,MyConnect);
// ve komutu ExecuteReader ile işletelim. Dönüş değeri bir DataReader nesnesi.
i:=Convert.ToInt32(MyCommand.ExecuteScalar);
MyConnect.Close;
if i<1 then
Response.Write('Giriş başarısız')
else
FormsAuthentication.RedirectFromLoginPage(TextBox1.Text,True);
end;

bu yukarıda kullanıcıların hepsine bakıp kontrol yapıyor benimkide yakla$ık öyle ama önce benimki kullanıcıyı bulacak içeride daha sonra databaseden o kayıttaki şifreyi bulacak buna göre bu yukarıdakini nasıl uyarlayabiliriz hocam?

Saygılarımla,
meren
Üye
Mesajlar: 71
Kayıt: 20 Ara 2004 03:44

Mesaj gönderen meren »

SQL ile yapılan örneği ADO ya uydurmaya çalı$tım olmuyor yaff.. ado.net ile yapılanı varmı arkada$lar yada
bu
procedure TWebForm1.btnGiris_Click(sender: System.object;
e: System.EventArgs);
const
CnStr =
'user id=sa;data source=Admin;persist security info=False;initial catalog=WebStok';
SS = 'SELECT * FROM dbo.COMKULLANICI';
kısımdaki CnStr 'ye access de ne yazabilirim acaba? belki öyle olunca sorunum düzelebilir ama :cry: :cry:
ademcicek
Üye
Mesajlar: 409
Kayıt: 03 Eki 2003 01:50
Konum: Ankara

Mesaj gönderen ademcicek »

ya hocam bir sqlconnection nesnesi koy sayfaya.onunlada hangi veritabanına bağlanacaksan görsel olarak bağlan.sonrada connection stringini kopyala.ve diğer yerlerdeki tablo isimlerini değiştir.bu çalışan bir örnek.çalıştırdığım yerden kopyalayıp koydum.
kolay gelsin.
meren
Üye
Mesajlar: 71
Kayıt: 20 Ara 2004 03:44

Mesaj gönderen meren »

Hocam senin dediğini yaptım ayınısnıı fakat veritabanına bağlanamıyor bunu bi Acccess veritabanı dosyasından deneyebilirmisin bak hata veriyor hocam o zaman :( birde şuradaki kodda hata veriyor

Response.Redirect(System.string.Format(c_UrlStr, [tbKullanici.Text,
tbSifre.Text])); => Buradaki c_UrlSTR =>??? hata veiyor hocam

accessde bi yapabilirsem sorunum tamamdır , valla sabahtan beri uğraşıyorum hocam ya :(
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

viewtopic.php?t=11408 bu işini görmüyor mu
meren
Üye
Mesajlar: 71
Kayıt: 20 Ara 2004 03:44

Mesaj gönderen meren »

hocam o makaleye baktıum ben i$imi görmüyor :(
halen uğra$maktayım
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

şuan sitemi yenilemek için phpp kurdum o yüzden asp.net çalışmıyor. inşallah yarın yazarım.
başka bi işle uğraşın o zamana kadar :)
Cevapla