0

У меня есть настройка службы WCF с 5 проектами для разных слоев, таких как DAL, рабочий стол, модель, интерфейс и сервис. BAL использует хранимую процедуру из DAL, которая извлекает данные, хранящиеся в базе данных. Как вызвать список базы данных из BAL, расположенный в службе, для отображения данных в форме в раскрывающемся списке.получить столбец и связать его с выпадающим списком C#

Вот мой BAL:

public class GenderBAL 
{ 
    public Genders GetGenders(Int32 id) 
    { 
     Genders item = null; 
     using (GenderTableAdapter ad = new GenderTableAdapter()) 
     { 
      using (mHotRes.DAL.dstGender.GenderDataTable tbl = new DAL.dstGender.GenderDataTable()) 
      { 
       ad.GetGendersInfo(); 
       if(tbl.Rows.Count == 1) 
       { 
        mHotRes.DAL.dstGender.GenderRow row = tbl[0]; 
        item = new Genders(); 
        item.GenderId = row.GenderId; 
       } 
      } 
     } 
     return item; 
    } 
} 

}

Вот моя форма:

private void FillLookups() 
    { 
     try 
     { 
      IHotRes res = new MHotServiceProvider().Service; 
      ddlGender.DataSource = res.GetGenders(1); 
      ddlGender.DataSource = "Gender"; 
     } 
     catch(Exception ex) 
     { 
      MessageHelper.ShowErrorMessage(ex); 
     } 
+0

просто добавить 'ddlGender.DataBind();' после этой строки: 'ddlGender.DataSource = res.GetGenders (1);' и удалить эту строку: 'ddlGender. DataSource = «Пол»; ' –

+0

@UZIERSKI Я думаю, что вы ищете, как связать значение и текст с выпадающим списком –

+0

@ChandrashekarJupalli Я просто хочу получить значение из базы данных и связать его с раскрывающимся списком. Код формы не совсем корректный. Я вижу ошибку, связанную с 'ddlGender.DataSource = res.GetGenders (1);' – UZIERSKI

ответ

0

Вы не пытаетесь получить идентификатор вы пытаетесь получить список из базы данных поэтому код должен выглядеть так: BAL:

public class GenderBAL 
{ 
    public List<Genders> GetGenderList() 
    { 
     List<Genders> gender = null; 
     Genders itm = null; 
     using (GenderTableAdapter adp = new GenderTableAdapter()) 
     { 
      using (DAL.dstLookup.GenderDataTable tbl = adp.GetGenderDataList()) 
      { 
       if(tbl.Count>0) 
       { 
        gender = new List<Genders>(); 

        foreach(var row in tbl) 
        { 
         itm = new Genders(); 
         itm.GenderId = row.GenderId; 
         itm.Gender = row.Gender; 
         gender.Add(itm); 
        } 
       } 
      } 
     } 
     return gender; 
    } 
} 

}

Также измените все свои слои на то, где вы использовали Genders GetGenders(Int32 id), чтобы получить список, как указано выше.

Для рабочего слоя также вызывайте список и помните, что для combobox требуются три свойства, которые должны быть установлены: ValueMember, DisplayMember и DataSource. В следующий раз прочитайте о различных свойствах перед их использованием. Код формы должен быть таким:

IHotRes res = new MHotServiceProvider().Service; 
ddlGender.ValueMember = "GenderId"; 
ddlGender.DisplayMember = "Gender"; 
ddlGender.DataSource = gender;