如何在数据集上运行查询
本文关键字:运行 查询 数据集 | 更新日期: 2023-09-27 17:50:33
我有一个名为dsView
的DataSet
,其中包含数据。以下是我用来读取XML:的代码
dsView = new DataSet();
dsView.ReadXml(@"'c:MyXml.xml");
该数据具有一个名为MEN
的表,该表具有字段Fname
和Lname
。如何在此dsView
上运行查询?(例如:select * from MEN where Fname = 'zz'
(
您不能在DataSet
上运行完整的SQL语句,但DataSet
中的DataTable
确实有一个名为Select(string)
的方法,它可以选择符合特定条件的DataRow
对象数组。
查看DataTable 上的MSDN文档
你可能需要做一些类似(未经测试(的事情:
DataTable tblMEN = dsView.Tables["MEN"];
DataRow[] results = tblMen.Select("Fname = 'zz'");
我认为您不能在DataSet
上运行SQL查询,因为它没有查询引擎。但是您可以尝试LINQ to DataSet。
此外,如果您只对数据(而不是DataSet
的数据绑定属性(感兴趣,我建议您使用LINQ to XML来查询文档。
dsView.Table[0].DefaultView.RowFilter = "Fname = 'zz'";
// now default view contains the filtered rows
//ds.Table[0].DefaultView
有关msdn 上DefaultVeiw的更多信息
AFAIK您只能使用Select方法在DataTable上运行类似Sql的查询。
你会使用这种数据表的过载。选择这里可以做这样的事情:
DataRow[] foundRows = dsView.Table[0].Select("Fname = `zz`");
dsView.Table[0]
应指向MEN的表,并且应具有Fname列
有效的表达式与DataColumn表达式相同:
http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression.aspx
这里有一个我用来制作菜单的例子。
Dim dstpage As DataSet
dstpage = businessService.GetData()
Dim userTable As DataTable
userTable = dstpage.Tables(0)
If userTable.Rows.Count > 0 Then
Dim results As DataRow()
results = userTable.Select("PAGE_GROUP_NAME='People'")
For i As Integer = 0 To results.Count - 1
FilePath = userTable.Rows(i)("FILE_PATH").ToString()
PageName = userTable.Rows(i)("PAGE_NAME").ToString()
Next
End If
// Create a table of five different people.
// ... Store their size and sex.
DataTable table = new DataTable("Players");
table.Columns.Add(new DataColumn("Size", typeof(int)));
table.Columns.Add(new DataColumn("Sex", typeof(char)));
table.Rows.Add(100, 'f');
table.Rows.Add(235, 'f');
table.Rows.Add(250, 'm');
table.Rows.Add(310, 'm');
table.Rows.Add(150, 'm');
// Search for people above a certain size.
// ... Require certain sex.
DataRow[] result = table.Select("Size >= 230 AND Sex = 'm'");
foreach (DataRow row in result)
{
Console.WriteLine("{0}, {1}", row[0], row[1]);
}
你可以使用这个代码。我希望它能帮助你。