• 07-07-2013, 06:13:18
    #1
    merhaba arkadaşlar c#da sql sorgularında biraz zayıfım sıkıntı şu ki ;

    ön bilgi:tabloda "imgl" harfleri var.

    şimdi soruma geçiyorum ;

    SqlCommand cmd = new SqlCommand("SELECT id FROM url WHERE uzanti LIKE 'imgl'", cnn);
    cnn.Open();
    string deger = Convert.ToString(cmd.ExecuteScalar());


    satırlarında sıkıntı yok, imgl'nin idsini veriyor amma velakin,



    string uzanti = "imgl";
    SqlCommand cmd = new SqlCommand("SELECT * FROM url WHERE uzanti LIKE '@uzanti'", cnn);
    cmd.Parameters.AddWithValue("@uzanti", uzanti);
    cnn.Open();
    string deger = Convert.ToString(cmd.ExecuteScalar());

    burda ise @uzanti değişkeninde bi hata yapiyorum deger stringi empty dönüyor? kafayı yemeden bana yardım edin
  • 07-07-2013, 06:40:26
    #2
    Üyeliği durduruldu
    Degısken tanımlardan " ylerine ' dener misin
  • 07-07-2013, 12:10:29
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    SqlDataAdapter adaptor = new SqlDataAdapter("SELECT * FROM url WHERE uzanti LIKE '@uzanti'", cnn);
    adaptor.SelectCommand.Parameters.AddWithValue("@uz anti", uzanti);

    select sorgularında adaptor kullanman gerekli.
  • 07-07-2013, 13:01:21
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    public DataTable Tablo(string kod)
    {
    BaglantiKontrol();
    DataTable dt = new DataTable();
    SqlCommand cmd = new SqlCommand();
    try
    {
    BaglantiAc();
    cmd.Connection = Sqlcnn;
    cmd.CommandText = kod;
    cmd.CommandType = CommandType.Text;
    if (Parametre != null)
    {
    if (Parametre.Count > 0)
    {
    for (int i = 0; i < Parametre.Count; i++)
    {
    cmd.Parameters.Add(Parametre[i]);
    }
    }
    }
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(dt);
    BaglantiKapat();
    return dt;
    }
    catch (Exception ex)
    {
    if (hataGosterme)
    {
    HataMesaj = ex.Message;
    }
    return null;
    }
    }
    Bu benim tablo getirme fonksiyonum kullanımı şöyle
    baglanti.Parametre = new ArrayList();

    if (anahtar.Length != 0)
    {
    baglanti.Parametre.Add(new SqlParameter("@anahtar", anahtar));
    }
    else
    {
    baglanti.Parametre.Add(new SqlParameter("@anahtar", DBNull.Value));
    }
    return baglanti.Tablo("SELECT * FROM url WHERE uzanti LIKE @anahtar");

    Parametreler böyle kullanılır. Sizin yaptığınız yöntem @uzanti diyip .Replace("@uzanti",uzanti) olduğunda çalışır. Parametreler ' tek tırnaklar kullanılmaz otomatik kendi çevirir.
  • 07-07-2013, 23:09:06
    #5
    aynen sıkıntı tırnaklardaymış, '@uzanti' yerine @uzanti yapınca cuk oturdu, herkese teşekkürler