查询返回列表中的值
问题描述:
我有一个与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不知道我的查询是否完全正确。请帮忙吗?
答
您正试图返回DataSet
作为List<MyAgenda>
这是不可能的。 你必须使用return ds.Tables[0].AsEnumerable().Select(...).ToList();
答案就在这里
我不知道你的表结构什么的,所以我不知道什么会从该查询返回。该查询应该返回所有以“ma.Id”开头的行的所有列。 – maniak1982
此代码不能编译。你声明返回一个MyAgenda,但是你返回一个DataSet。从这部分我们可以知道你的查询是否正确。什么是ID? Table的列是什么?如果你想得到帮助,请发布[mcve] – Steve
如果Id是一个字符串,你的查询可能是正确的,如果你的Id是数字..你应该使用=而不是像和不使用wildchar(%) – scaisEdge