Soran
C# public void (string a) string boş geliyor neden???

Soru
-
Arkadaşlar şöyle bir metodum var
public void cariCAGIRHEPSİ(GridControl gr,int durum,string sorgu,string arama) { SqlConnection con = new SqlConnection(gnl.baglanti); try { if (con.State == ConnectionState.Closed) { con.Open(); } if (durum == 1) { SqlDataAdapter da = new SqlDataAdapter("select cari.id,unvan,vasıf,borc,alacak,bakiye from cari inner join cariKartGrup on cari.grupId=cariKartGrup.id where durum=1 ", con); DataTable dt = new DataTable(); da.Fill(dt); gr.DataSource = dt; } else if (durum == 0) { SqlDataAdapter da = new SqlDataAdapter("select cari.id,unvan,vasıf,borc,alacak,bakiye from cari inner join cariKartGrup on cari.grupId=cariKartGrup.id where durum=0 ", con); DataTable dt = new DataTable(); da.Fill(dt); gr.DataSource = dt; } else if (durum == 3) { SqlDataAdapter da = new SqlDataAdapter("select cari.id,unvan,vasıf,borc,alacak,bakiye from cari inner join cariKartGrup on cari.grupId=cariKartGrup.id ", con); DataTable dt = new DataTable(); da.Fill(dt); gr.DataSource = dt; } else if (durum == 4) { SqlDataAdapter da = new SqlDataAdapter("select cari.id,unvan,vasıf,borc,alacak,bakiye from cari inner join cariKartGrup on cari.grupId=cariKartGrup.id where @sorgu like '%@arama%' ", con); DataTable dt = new DataTable(); da.Fill(dt); gr.DataSource = dt; } } catch (SqlException ex) { string hata = ex.Message; } finally { con.Dispose(); con.Close(); } }
BU METODA AŞŞADAKİ GİBİ VERİ GÖNDERİYORUM AMA 2 STRİNG NULL GİDİYOR NEDEN?
if (cbsorgu.SelectedIndex==2) { string a ="unvan"; string b ="sefa"; cari.cariCAGIRHEPSİ(gridControl1, 4,a,b); }
BÖYLE GÖNDERİYORUM GRİDCONTROL DOLUYOR 4 GİDİYOR AMA BU 2 ADET STRİNG GİTMİYOR NULL GİDİYOR NEDEN ?
Tüm Yanıtlar
-
Parametre oluşturmuşsunuz ama değerini vermemişsiniz.
-
-
@MuratAKSARAY new SqlDataAdapter($"S... ile başlayan satırda where kısmı hatalı olmuş.
Ben hâlâ arkadaşın Entity Framework gibi bir ORM kullanması taraftarıyım...
-
Where kısmını fark edip düzeltmiştim. Yine de dikkatiniz için teşekkürler.
ORM kullanımı konusunda hem fikirim. Ama SEFA UNQ'nun tercihini hemen değiştireceğini sanmıyorum.
Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...
-
Metod parametrelerinin null olabilme durumunu dikkate alarak,
public DataTable cariCAGIRHEPSİ(string kolon, dynamic arama) { DataTable dt = new DataTable(); string where = ""; if (!string.IsNullOrWhiteSpace(kolon)) { where = string.Format("WHERE [{0}]", kolon); if (arama.GetType() == typeof(string)) { where += " LIKE @param"; arama = string.Format("%{0}%", arama); } else where += "=@param"; } using (SqlConnection con = new SqlConnection(gnl.baglanti)) { using (SqlDataAdapter da = new SqlDataAdapter(string.Format("SELECT cari.id, unvan, vasıf, borc, alacak, bakiye FROM cari INNER JOIN cariKartGrup ON cari.grupId=cariKartGrup.id {0}", where), con)) { da.SelectCommand.Parameters.AddWithValue("@param", arama); da.Fill(dt); } } return dt; } private void button1_Click(object sender, EventArgs e) { gr.DataSource = cariCAGIRHEPSİ("durum", 1); //gr.DataSource = cariCAGIRHEPSİ("durum", 0); //gr.DataSource = cariCAGIRHEPSİ("unvan", "sefa"); //gr.DataSource = cariCAGIRHEPSİ(null, null); }
kullanabilirsiniz.
Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...
- Düzenleyen MuratAKSARAY 18 Aralık 2018 Salı 09:18 Visual Studio 2012
-
-
-
2012 kullanıyorum hocam napıcam bilemiyorum beceremiyorum yapamak istedigim şu benim bir cari adında tablom var formda devexpres kullanıyorum bir gridcontrol var şimdi üste 2 tane combobox var bunların biri sorgu türü mesela id sine göre adına göre bakiyesine göre bu secilecek birde yanda durum var aktif pasif veya her ikisi bunları secicem bunlara göre filtre ederek listeleme yapacak bir türlü beceremedim :/
-
2015de çalışmayan 2012 de hiç çalışmaz.öncelikle VS 2017 kullan.
Daha sonra yukardaki kodları sil. gridControl'ün detaylı filtre sistemi zaten var. Ama sen veriyi de yanlış doldurduğun için herşey sarpa sarıyor.
bana anydesk id gönder beraber bakalım.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Düzenleyen Önay YALÇINERModerator 18 Aralık 2018 Salı 08:34
-
-
şimdide
where = $"WHERE [{kolon}]"; <<<< burası if (arama.GetType() == typeof(string)) { where += " LIKE @param"; arama = $"%{arama}%"; <<< burası }
bu 2 yer kırmızı yanıyor hocam
hatalar
Error 4 ; expected
Error 5 Invalid expression term ''
Error 1 Unexpected character '$'
bunlar
-
C# ın eski bir sürümünü kullanıyorsunuz. Visual Studio 2017 kullanın.. 2019 da kapıda.
- Düzenleyen Cihan YakarMVP 18 Aralık 2018 Salı 09:18
-
-
-
20 gb diyor 2015 olmazmı hocam?
Bu işi hobi olarak yapacaksınız neden olmasın? @Murat bey cevabını düzenlemiş mevcut sürümünüz ile de ilerleyebilirsiniz. -
Merhaba,
Durum 4 için olan sql script'te @sorgu ve @arama kullanımı yanlış olmuş. inline script olarak aşağıdaki gibi düzeltirseniz çalışacaktır.
SqlDataAdapter da = new SqlDataAdapter("select cari.id,unvan,vasıf,borc,alacak,bakiye from cari inner join cariKartGrup on cari.grupId=cariKartGrup.id where " + sorgu +" like '%"+arama+"%' ", con);
-
Merhaba,
Durum 4 için olan sql script'te @sorgu ve @arama kullanımı yanlış olmuş. inline script olarak aşağıdaki gibi düzeltirseniz çalışacaktır.
SqlDataAdapter da = new SqlDataAdapter("select cari.id,unvan,vasıf,borc,alacak,bakiye from cari inner join cariKartGrup on cari.grupId=cariKartGrup.id where " + sorgu +" like '%"+arama+"%' ", con);