none
mysql kişiye ait bilgiler RRS feed

  • Soru

  • belirtilen id ye ait bilgileri  almak istiyorum bnm oluşturduğum kod bu ama çalışmadı düzenlerseniz sevinirim

    adminbaglanti2.Open() Dim i As Integer = 0 Dim sqli As String sqli = "Select Baslik,Metin,Resim from organizasyonuc Where id=('" & i & "')" Dim komut1 As New MySqlCommand(sqli, adminbaglanti2) Dim oku As MySqlDataReader = komut1.ExecuteReader While (oku.Read()) oku.Read() Label1.Text = oku("Baslik").ToString() Label2.Text = oku("Metin").ToString() Image1.ImageUrl = "~/" + oku("Resim").ToString() End While adminbaglanti2.Close()"

    // "i" diye bi değişken var bu değişkeni id olarak kullanıyorum başlangıçta ıd sıfır

    ilkolarak id'si sıfır olan kayıttaki bilgileri alsın yazsın sonra id olarak kullandığım i değişkeni 1 artsın istiyorum ama olmadı

    6 Temmuz 2015 Pazartesi 10:00

Yanıtlar

  • id alanı muhtemelen int olduğu için burayası için kullanacağın değerler tırnak içinde olmamalı (kullandığın tek tırnaklardan bahsediyorum) SQL sorgusunu

    "Select Baslik,Metin,Resim from organizasyonuc Where id=(" & i++ & ")"
    yaparsan hem sorgun ÇALIŞIR hemde id değişkeni bir artmış olur. Bu arada parametre kullanamamayı nasıl becerdin :)

    6 Temmuz 2015 Pazartesi 10:22
  • Ya bunlar temel syntax isleri :) ++ yazim hatasi olmus o kadar, hem parametre kullan, oyle dertlerin olmaz.

    & i &

    6 Temmuz 2015 Pazartesi 10:57

Tüm Yanıtlar

  • bu arada parametre kullanmayı beceremediğim için kullanmadım
    6 Temmuz 2015 Pazartesi 10:01
  • id alanı muhtemelen int olduğu için burayası için kullanacağın değerler tırnak içinde olmamalı (kullandığın tek tırnaklardan bahsediyorum) SQL sorgusunu

    "Select Baslik,Metin,Resim from organizasyonuc Where id=(" & i++ & ")"
    yaparsan hem sorgun ÇALIŞIR hemde id değişkeni bir artmış olur. Bu arada parametre kullanamamayı nasıl becerdin :)

    6 Temmuz 2015 Pazartesi 10:22
  • Bu kodda ne yapmak istedigin pek anlasilmiyor. 

    Dim sqli as String = <sql>Select Baslik,Metin,Resim 
      from organizasyonuc
      Where id=@id
    </sql>
    Dim i As Integer = 0
    Dim komut1 As New MySqlCommand(sqli, adminbaglanti2)
    komut1.Parameters.AddWithValue("@id", i)
    
    adminbaglanti2.Open()
    Dim oku As MySqlDataReader = komut1.ExecuteReader()
    if oku.HasRows
      oku.Read()
      Label1.Text = oku("Baslik").ToString()
      Label2.Text = oku("Metin").ToString()
      Image1.ImageUrl = "~/" + oku("Resim").ToString()
    end if
    adminbaglanti2.Close()
    

    6 Temmuz 2015 Pazartesi 10:34
  • ya bu konuyla ilgili ne kadar araştırma yaptıysam hiç bi yerde ney nerede nasıl kullanılır ne nedektir tarsında bişey bulamadım hep şuna benzer yazıyolar veri ekleme diyip direk satırlarca kod veriyolar ama açıklama yok ney ne demek orda nasıl kullanmış hiç bişey anlaşılmıyor

    6 Temmuz 2015 Pazartesi 10:49
  • & i++ & //sağdaki & işaretinin altında yeşil bir çizgi çıkıyor?
    6 Temmuz 2015 Pazartesi 10:53
  • Ya bunlar temel syntax isleri :) ++ yazim hatasi olmus o kadar, hem parametre kullan, oyle dertlerin olmaz.

    & i &

    6 Temmuz 2015 Pazartesi 10:57
  • çok sağolun birşey daha sormak istiyorum mesela webform1 de label1deki metne başka bir webformdan nasıl ulaşırım 

    yani webform1de bulunan  label1deki yazıyı webform2de bulunan textboxa çekmek istiyorum yada onun yerine şöyle bişey olabilir ben bir öyle bir vere veri yazıcamki her webformdan ulaşabilcem veritabanıyla yapmayı düşündüm ama performan açısında nası olur bilemem


    • Düzenleyen NScoder54 6 Temmuz 2015 Pazartesi 11:07
    6 Temmuz 2015 Pazartesi 11:03
  • Merhaba,

    adminbaglanti2.Open() Dim sqli As String sqli = "Select Baslik,Metin,Resim from organizasyonuc" Dim komut1 As New MySqlCommand(sqli, adminbaglanti2) Dim oku As MySqlDataReader = komut1.ExecuteReader While (oku.Read()) Label1.Text = oku("Baslik").ToString() Label2.Text = oku("Metin").ToString() Image1.ImageUrl = "~/" + oku("Resim").ToString() End While adminbaglanti2.Close()

    ID ye where kriterı koymanız gerekmez. Elinizde 1,2,3,4,5,6,7,8 id li 8 tane kayıt olsun.

    DataReader 1 den başlayarak sırayla 8 e kadar zaten okur hepsini. While(rdr.Read()) denilen yer

    şu şekilde çalışır. Okuyucu 1. kayıttan başlar okumaya,

    While(oku.Read())

    ID = 1 (1. kayıdı okudu)

    sonra başa dönüyor döngü, Okunacak başka kayıt var mı? (Evet)

    ID = 2 (2. kayıdı okudu)

    tekrar devam edip etmeyeceğine karar vereceği için başa dönüyor döngü. Okunacak başka kayıt var mı? (Evet)

    ID = 8 (8. kayıdı okudu)

    .

    .

    .

    .

    başa döndü okunacak kayıt var mı? HAYIR (bütün kayıtlar okundu çünkü) döngüden çıkıldı bağlantı kapatıldı.

    6 Temmuz 2015 Pazartesi 11:04
  • Merhaba,

    adminbaglanti2.Open() Dim sqli As String sqli = "Select Baslik,Metin,Resim from organizasyonuc" Dim komut1 As New MySqlCommand(sqli, adminbaglanti2) Dim oku As MySqlDataReader = komut1.ExecuteReader While (oku.Read()) Label1.Text = oku("Baslik").ToString() Label2.Text = oku("Metin").ToString() Image1.ImageUrl = "~/" + oku("Resim").ToString() End While adminbaglanti2.Close()

    ID ye where kriterı koymanız gerekmez. Elinizde 1,2,3,4,5,6,7,8 id li 8 tane kayıt olsun.

    DataReader 1 den başlayarak sırayla 8 e kadar zaten okur hepsini. While(rdr.Read()) denilen yer

    şu şekilde çalışır. Okuyucu 1. kayıttan başlar okumaya,

    While(oku.Read())

    ID = 1 (1. kayıdı okudu)

    sonra başa dönüyor döngü, Okunacak başka kayıt var mı? (Evet)

    ID = 2 (2. kayıdı okudu)

    tekrar devam edip etmeyeceğine karar vereceği için başa dönüyor döngü. Okunacak başka kayıt var mı? (Evet)

    ID = 8 (8. kayıdı okudu)

    .

    .

    .

    .

    başa döndü okunacak kayıt var mı? HAYIR (bütün kayıtlar okundu çünkü) döngüden çıkıldı bağlantı kapatıldı.

    Ya birkaç milyon kayıt olsaydı ne yapacaktı? Bir tane kayda ulaşmak için milyonlarca kaydı mı bekleyecekti. Hem Id ye where kriteri koymak gerekmez ne demek. Where, SQL in temel taşlarından biridir. Oldu olacak veritabanına gerek yok al bir harita metod defteri ona kaydet deseydin. Hepsini geçtim bu yöntemle hangisinin senin aradığın kayıt olduğunu nasıl tespit ediyorsun. Çünkü kodların sonunda Label larda en son kayda ait veriler yazacak, Image de en son kayın gösterdiği yoldaki resim görünecek. 

    @NSCoder : Kusura bakma ben VB de ++ operatörü vardır diye düşünmüştüm. Sende ID bir artsın diye yazınca öyle yazdım. Tekrar özür dilerim

    6 Temmuz 2015 Pazartesi 11:36
  • ne demek  kusurabakmayın olabilir böyle şeyler önemli olan ilgi göstermeniz gerçekten teşkkürler
    6 Temmuz 2015 Pazartesi 11:53
  • Hayir olmayacak, orada milyonlarca kaydi degil, sadece o Id'ye uyan kayitlari getirmek istiyor. Acik acik soylenmemis ama Id muhtemelen primary key. Oyle olmasa bile, diyelim ki where kismi:

    where Metin like '%a%'

    ve 100 tane kayit getiriyor olsun. while (oku.Read()) kisminin hic bir amaci yok.  Surekli sekilde UI'de degisiklik yapilip, sonucta son kaydin ki olacak.

    where kisminin gereksizligi N tane ID icin de cok sacma. Cok sayida kayit olabilecegini dusunerek, yine where kullanilir. SQL IN ( ... ) diye cok sayida ID'nin tek bir seferde sorgulanmasina izin veriyor. where kullanmamak bariz ofsayt :)

    6 Temmuz 2015 Pazartesi 12:12
  • Öncelikle üslubunuza dikkat edin.

    "Select Baslik,Metin,Resim from organizasyonuc Where id=(" & i++ & ")"

    Verdiğiniz çözümde i++ kişiye nasıl bir çözüm sağlayacak doğrusu merak etmiyor değilim?

    Ben 25 id li kayıt'ın gelmesini istiyorsam eğer ve i değişkeni 0 dan başlıyor ve sizin verdiğiniz kodla

    göre 25 e kadar sürekli sorgu gönderecek sunucuya?

    6 Temmuz 2015 Pazartesi 12:12
  • i++ bir yazim hatasi olmus, siz ona takiliyorsunuz ama UI kisminda mantik hatasi var zaten. UI araliklarla guncellenecek ise, zaten server'a tekrar tekrar sorgu gonderilir cunku istenilen ID'ler onceden bilinmiyor, araliklarla kullanici secimleri belirliyordur.
    6 Temmuz 2015 Pazartesi 12:17
  • Yazılan kodu tekrardan analiz edip rewrite yapmadım. Arkadaşın verdiği cevabı anlamsız bulduğum için where kriteri niye koyuyorsunuz ozaman? While döngüsüde aynı işlemi yapıyor diye o şekilde yazdım. Biraz fevri davranıp garip söylemlerde bulunması ilginç.
    6 Temmuz 2015 Pazartesi 12:23
  • Soruyu okusan alt kısımda aynen şöyle yazıyor 

    // "i" diye bi değişken var bu değişkeni id olarak kullanıyorum başlangıçta ıd sıfır

    ilkolarak id'si sıfır olan kayıttaki bilgileri alsın yazsın sonra id olarak kullandığım i değişkeni 1 artsın istiyorum ama olmadı

    Ayrıca orada ++ yazıyor olması illa ki döngüye girmesini gerektirmez. ++ Operatörü VB de vardır diye düşündüğüm için yazdım ancak yokmuş. O benim hatam kabul ederim. Tabloda değil 25, 25 milyon kayıt olsa döngü içinde yazmadığın sürece gideceği son nokta 1 olurdu çünkü id nin o anki değeri 0 ++ dan sonra 1 olacaktı o kadar. Sorgu sürekli çalışan bir sorgu değil ki. 

    6 Temmuz 2015 Pazartesi 12:24
  • Cevap anlamsiz degildi, sadece VB.Net'de olmayan i++ seklindeydi, onun yerine sadece i ya da i+1 diye dusunurseniz anlam kazaniyor. Ortada dongu filan yok, server'a yeniden giden sorgu yok. Oyle olunca da "where" kismi cok anlamli oluyor, aksine where kullanmamak cok anlamsiz oldugu icin fevri davranmayi hos gormek lazim. 

    while ayni isi "tesadufen" yapiyor, cunku Id primary key ise gelen zaten tek kayit. Onun disinda while ayni seyi yapmiyor, gelen N kaydi da dolasiyor, sonucta UI'da gorunen en sonuncusu olacak.

    6 Temmuz 2015 Pazartesi 12:29
  • Soruda yazana  biraz yorum katarsanız eğer şu anlama geliyor. İ diye bir değişken var başlangıçta 0

    daha sonra bu sürekli artarak 1 artsın, yani tablodaki bütün id lere ulaşayım sırayla anlamına geliyor (yani beginner mantığıyla düşünülürse buraya çıkıyor anlam), sonra sizin yazdığınız koda bakıyorum i++, ozaman diyorum ki soruyu soran arkadaş aslında tablodaki bütün kayıtları çekmek istiyormuş. Ozaman "where" e ne gerek var madem i sürekli artacak, While zaten o işlemi yapacak. UI kısmı tabi ki yanlış. Ama burada sorulan ana soru bu değildi. Ben sizin yanlış olan cevabınıza (i++) sizi bozmadan yanıt verdim. Sizin üslup bozarak cevaplamanız garip.

    6 Temmuz 2015 Pazartesi 12:30
  • Soruda yazana  biraz yorum katarsanız eğer şu anlama geliyor. İ diye bir değişken var başlangıçta 0

    daha sonra bu sürekli artarak 1 artsın, yani tablodaki bütün id lere ulaşayım sırayla anlamına geliyor (yani beginner mantığıyla düşünülürse buraya çıkıyor anlam), sonra sizin yazdığınız koda bakıyorum i++, ozaman diyorum ki soruyu soran arkadaş aslında tablodaki bütün kayıtları çekmek istiyormuş. Ozaman "where" e ne gerek var madem i sürekli artacak, While zaten o işlemi yapacak. UI kısmı tabi ki yanlış. Ama burada sorulan ana soru bu değildi. Ben sizin yanlış olan cevabınıza (i++) sizi bozmadan yanıt verdim. Sizin üslup bozarak cevaplamanız garip.

    arkadaşlar bu problemi çözdüm sanırım ancak farklı birşeyi sormak istiyorum internette bnm gibi arayanlar kolay ulaşabilsin diye yeni bir başlık altında soracağım linkdiğer soru için tıklayın//bağlantıyı açıp kapama konusunda bir soru
    6 Temmuz 2015 Pazartesi 13:01