【发布时间】: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 (%)