使用数据库查询结果,而不是在数据网格中显示
本文关键字:数据 数据网 网格 显示 数据库 查询 结果 | 更新日期: 2023-09-27 18:04:56
我正在使用c#创建一个Silverlight 4应用程序。
我正在尝试做以下事情:
MapNode endNode = null;
if (keyword != null && keyword != "")
{
EntityQuery<NodeIDProj> res = CampusQueries.getNodeIDByNameQuery(keyword);
var queryres = CampusQueries.Load<NodeIDProj>(res, (items) =>
{
foreach (var item in items.Entities)
{
MapNode n = mapHelp.getNodeByID(item.NodeID);
if (n != null)
{
endNode = n;
TrackAnimation();
}
}
}, true);
}
然而,在此之后,我的变量endNode仍然为空。TrackAnimation()就像endNode有一个有效值一样工作,但是在Load语句之外,endNode返回null。
我知道我对这是如何工作的理解不足,我将非常感谢您的帮助。
我想做的是查询我的数据库,我想在其他方法中使用这些结果,而不是在数据网格中显示它们。
我希望endNode有一个值,我可以在其他方法中使用。
请帮我想个办法,谢谢!
编辑:谢谢你,SLaks
我可以这样做吗:
MapNode = null;
if (keyword != null && keyword != "")
{
EntityQuery<NodeIDProj> res = CampusQueries.getNodeIDByNameQuery(keyword);
var queryres = CampusQueries.Load<NodeIDProj>(res, (items) =>
{
foreach (var item in items.Entities)
{
MapNode n = mapHelp.getNodeByID(item.NodeID);
if (n != null)
{
endNode = n;
TrackAnimation();
}
}
}, true);
}
queryres.Completed += new EventHandler(queryres_Completed);
void queryres_Completed(object sender, EventArgs e)
{
//stuff
}
如果是这样,我如何访问endNode变量,因为它是在另一个方法中声明的?
您的Load
方法可能是异步的,这意味着回调发生在您的其他代码运行之后的一段时间。
您只能在实际收到结果后使用它。