2016-12-03 59 views
-1

我有一个与Id,名称,地址等联系人列表,我想做一个查询返回所有这些联系人。查询返回列表中的值

public List<MyAgenda> mostrarContatos() 
    { 
     MyAgenda ma = new MyAgenda(); 
     DataSet ds = new DataSet(); 
     OleDbConnection conn = new OleDbConnection(); 

     try 
     { 



      conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["myconn"].ConnectionString); 

      //2ª Passo: Definir query 
      string query = "select * from Table where Id like '" + ma.Id + "%'"; 

      //3ª Passo: Preprarar para Executar 
      OleDbDataAdapter da = new OleDbDataAdapter(query, conn); 

      //4º Passo: Executa a query 
      da.Fill(ds, "Dados"); 

      //Devolvo DataSet 
      return ds; 
     } 
     catch (Exception err) 
     { 
      throw new Exception("ERRO: " + err.Message); 
     } 
     finally 
     { 
      conn.Close(); 
     } 

看来我不能返回D和IM不知道我的查询是否完全正确。请帮忙吗?

+0

我不知道你的表结构什么的,所以我不知道什么会从该查询返回。该查询应该返回所有以“ma.Id”开头的行的所有列。 – maniak1982

+0

此代码不能编译。你声明返回一个MyAgenda,但是你返回一个DataSet。从这部分我们可以知道你的查询是否正确。什么是ID? Table的列是什么?如果你想得到帮助,请发布[mcve] – Steve

+0

如果Id是一个字符串,你的查询可能是正确的,如果你的Id是数字..你应该使用=而不是像和不使用wildchar(%) – scaisEdge

回答

1

您正试图返回DataSet作为List<MyAgenda>这是不可能的。 你必须使用return ds.Tables[0].AsEnumerable().Select(...).ToList(); 答案就在这里

Convert DataSet to List