2014-03-25 5 views
0

SqlHelper을 사용하여 DB의 저장 프로 시저를 실행하고 있습니다. 네임 스페이스라는 상수에서데이터 집합을 IList로 변환

내가 내가 IList 형식으로 결과를 저장된 프로 시저를 실행하고 얻으려고 노력하고있는 DAL 층에서이

public class ShowInstitutes 
{ 
    public string InstituteName { get; set; } 
    public string InstituteCity { get; set; } 
    public int InstituteId { get; set; } 
} 

과 같이 정의

public IList<ShowInstitutes> ShowInstitutes(int instituteId) 
{ 
    return SqlHelper.ExecuteDataset(dBConnection, "usp_SPName"); 
} 

나는 다음을 얻고있다 오류 :

Cannot implicitly convert type 'System.Data.DataSet' to 'System.Collections.Generic.IList<>

+0

나는 확실하지 않다. 이 게시물을보십시오 : http://stackoverflow.com/questions/17107220/convert-dataset-to-object-list –

답변

3
public IList<ShowInstitutes> ShowInstitutes(int instituteId) 
{ 
    var d = SqlHelper.ExecuteDataset(dBConnection, "usp_SPName"); 

    var myData = d.Tables[0].AsEnumerable().Select(data => new ShowInstitutes{ 
     InstituteName = data.Field<string>("InstituteName "), 
     InstituteCity = data.Field<string >("InstituteCity "), 
     InstituteId = data.Field<int>("InstituteId ") 
    }); 
    var list = myData.ToList(); 
    return list; 
} 
+0

죄송합니다, 그것은 실수였습니다! – Sajeetharan

3

이렇게 데이터 세트 결과를 IList로 변환 할 수 있습니다. 당신이 할 수 있다면

public IList<ShowInstitutes> ShowInstitutes(int instituteId) 
{ 
    var dataTable = SqlHelper.ExecuteDataset(dBConnection, "usp_SPName"); 
    var SourceLists = new List<ShowInstitutes>(); 
    for (var index = 0; index < dataTable.Rows.Count; index++) 
    { 
     SourceLists.Add(new ShowInstitutes 
     { 
      InstituteName = Convert.ToString(dataTable.Rows[index]["Columnname"], CultureInfo.InvariantCulture), 
      InstituteCity = Convert.ToString(dataTable.Rows[index]["Columnname"], CultureInfo.InvariantCulture), 
      InstituteId = Convert.ToInt32(dataTable.Rows[index]["Columnname"], CultureInfo.InvariantCulture) 
     }); 
    } 
    return SourceLists; 
} 
0
public class info 
{ 
    public string counter 
    { 
     get; set; 
    } 
    public string age 
    { 
     get; 
     set; 
    } 
    public string id 
    { 
     get; 
     set; 
    } 
    public string marks 
    { 
     get; 
     set; 
    } 
    public string name 
    { 
     get; 
     set; 
    } 

    public List<info> getdata() 
    { 
     string c = "Data Source=bla ;bla ;bla"; 

     SqlConnection con = new SqlConnection(c); 
     DataSet ds = SqlHelper.ExecuteDataset(con, CommandType.Text, "SELECT * from table1"); 

     var list = (ds.Tables[0].AsEnumerable().Select(
      df => 
      new info 
      { 
       age = df[0].ToString(), 
       counter = df[1].ToString(), 
       id = df[3].ToString(), 
       name = df[4].ToString(), 
       marks = df[2].ToString() 
      })).ToList(); 

     return list; 
    } 

} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     info a =new info(); 
     List<info> list1= a.getdata(); 
     foreach (var info in list1) 
     { 
      Console.WriteLine(info.name+" "+info.age+" "+info.marks); 
     } 
     Console.Read(); 
    } 
} 
+0

변수 이름에 초점을 두지 마십시오. 목표는 데이터 세트를 목록으로 변환하는 것을 보여줍니다. – user2329366

+0

코드가 어떻게 문제를 해결하는지에 대한 설명을 제공해주십시오. OP 코드의 문제점은 무엇이며 어떻게 해결하고 있습니까? 의견에 답하기보다는 대답을 편집하여 설명을 추가하십시오. –

+0

도움 주셔서 감사합니다. – user2329366

관련 문제