Forum
public List<IlanModel> AnasayfadaAramaYap(int kategoriID, int ilID, int ilceID,int minFiyat, int maxfiyat, int OdaSayisi, int minMetrekare, int maxMetrekare)
{
object[] values = { kategoriID, ilID, ilceID, minFiyat, maxfiyat, OdaSayisi, minMetrekare, maxMetrekare };
string[] pnames = { "@kategoriID", "@ilID", "@ilceID","@minFiyat", "@maxfiyat", "@OdaSayisi", "@minMetrekare", "@maxMetrekare" };
EmlakDB db = new EmlakDB("db");
SqlDataReader dr = db.ExecuteReader("sp_anasayfaArama", true, pnames, values);
List<IlanModel> detay = new List<IlanModel>();
while (dr.Read())
{
IlanModel ilan = new IlanModel();
ilan.IlanID = dr.GetInt32(0);
ilan.IlanAdi = dr.GetString(1);
ilan.KategoriAdi = dr.GetString(2);
ilan.TipAdi = dr.GetString(3);
ilan.TurAdi = dr.GetString(4);
ilan.IstenilenFiyat = dr.GetDecimal(5);
ilan.Metrekare = dr.GetString(6);
ilan.KatAdi = dr.GetString(7);
ilan.OdaSayisiDegeri = dr.GetString(8);
ilan.IlanSahibiID = dr.GetInt32(9);
ilan.IlAdi = dr.GetString(10);
ilan.IlceAdi = dr.GetString(11);
ilan.SemtAdi = dr.GetString(12);
detay.Add(ilan);
}
dr.Close();
return detay;
}
while(dr.read) kısmına gelince " Conversion failed when converting the nvarchar value 'Stüdyo' to data type int." hatasını alıyorum
Merhaba
aşağıdaki değerleri aldığınız get methodlarından birisi farklı veri tipi döniyor. Böyle yapmak yerine dataTable'ye alabilirsiniz verileri.
daha kısa ve veri tipleri reflect edip kendisi belirler..
yalnız benim amacım bi usercontrolden aldığım bilgileri başka bi usercontrolden çağırabilmek.eğer datatable kullanırsam diğer usercontrolden bu bilgileri nasıl çağırabilirim ?
DataTable yada DataSet e doldurduğun bir veriyi bir başka kontrole rahatlıkla aktarabilirsin. List kullanmana gerek kalmaz. Direk DataTable olarak çağırabilirsin. Bu arada string gelen bir veriyi int e çeviremiyor demiş. GetInt olarak çekmeye çalışıyorsun galiba, Bu arada Get'i kullanırken IsDBNull u turner operatörü ile default değer vermen lazım. Çünkü null gelen bir değer her halükarda stringde olsa int de olsa hata fırlatacaktır.