【问题标题】:Query to return values from a list查询以从列表中返回值
【发布时间】:2017-04-18 09:16:46
【问题描述】:

我有一个包含 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();
        }

似乎我无法返回 Ds,而且我不确定我的查询是否完全正确。请问有什么帮助吗?

【问题讨论】:

  • 我对你的表结构一无所知,所以我不知道这个查询会返回什么。此查询应返回 ID 以 ma.Id 开头的所有行的所有列。
  • 此代码无法编译。您声明返回 MyAgenda,但您返回的是 DataSet。其中一部分是我们如何知道您的查询是否正确。什么是身份证?表的列是什么?如果您想获得帮助,请发帖minimal reproducible example
  • 如果 Id 是一个字符串,如果你的 Id 是数字,你查询可能是正确的。你应该使用 = 而不是 like 并且不要使用 wildchar (%)

标签: c# sql


【解决方案1】:

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

Convert DataSet to List

【讨论】:

    猜你喜欢
    • 2015-10-06
    • 2022-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2021-10-01
    • 2013-01-02
    • 2011-09-30
    相关资源
    最近更新 更多