2016-12-03 78 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