【发布时间】:2017-07-06 11:50:58
【问题描述】:
这可以通过使用 SQL 来完成,但是我想使用 XML 文件来为用户提供便利。我可以让它在数据网格视图中正常显示数据,但我不确定如何像在 SQL 数据库中那样搜索它。
我需要做的就是让该人搜索姓名、信息或访问日期,以将数据放入数据网格视图中。
以下是我的 XML 代码:
<root>
<place>
<Name>home</Name>
<Location>x-292 z 277</Location>
<Info>home</Info>
<Dayvisited>10</Dayvisited>
</place>
<place>
<Name>town</Name>
<Location>x 990 z-2485</Location>
<Info>gas station</Info>
<Dayvisited>12</Dayvisited>
</place>
<place>
<Name>crossing</Name>
<Location>x 90 z-2998</Location>
<Info>working stiff</Info>
<Dayvisited>11</Dayvisited>
</place>
</root>
到目前为止,这就是我将其加载到网格中的方式
ds.ReadXml("Database.xml");
dataGridView1.DataSource = ds.Tables[0];
dataGridView1.Rows[0].Visible = false;
我是使用 xml 文件的新手,因此不胜感激。
【问题讨论】:
-
您可以尝试使用 LINQtoXML 库,您可以在其中进行类似于 SQL 数据库的查询。只需将 xml 加载到 XDocument 类并运行 LINQ 查询
-
到目前为止,您所做的一切都很完美。 Root 是DataSet 的名称。Place 是第一个Datatable 的表名。列名称是地点子项的标记名称。所以你可以使用 ds.Tables["place"] 代替 ds.Tables[0]。
-
我正在查看 LINQ,但我找不到任何人以我可以使用它的方式解释它
-
搜索位置:
XDocument doc = XDocument.Parse(yourXmlText); var f = doc.Descendants("Location").Where(x => x.Value.Contains(yourSearchText)).ToList(); -
@TaW 当我尝试它告诉我。根级别的数据无效。第 1 行,位置 1。我做错了吗?
标签: c# xml datagridview