我有一个名为dsView
的DataSet
包含数据。下面是我用来读取XML的代码:如何在数据集上运行查询?
dsView = new DataSet();
dsView.ReadXml(@"\c:MyXml.xml");
的数据有一个名为MEN
与领域Fname
和Lname
表。如何在此dsView
上运行查询? (例如:select * from MEN where Fname = 'zz'
)
我有一个名为dsView
的DataSet
包含数据。下面是我用来读取XML的代码:如何在数据集上运行查询?
dsView = new DataSet();
dsView.ReadXml(@"\c:MyXml.xml");
的数据有一个名为MEN
与领域Fname
和Lname
表。如何在此dsView
上运行查询? (例如:select * from MEN where Fname = 'zz'
)
您不能运行在DataSet
完整的SQL语句 - 但DataTable
您DataSet
里面确实有一个叫Select(string)
方法,选择DataRow
对象的数组符合特定条件的。
你可能不得不这样做(未经测试):
DataTable tblMEN = dsView.Tables["MEN"];
DataRow[] results = tblMen.Select("Fname = 'zz'");
感谢您的帮助,现在如何从结果中读取该行? – Gali 2011-04-20 08:12:34
@Gali:对“DataRow”数组做一个foreach - 这只是标准的ADO.NET .... – 2011-04-20 08:14:30
AFAIK您只能与Select method.
运行在 数据表一个SQL LIKE查询你会用这里this overload of DataTable.Select做这样的事情:
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
我不认为你可以在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
更多DefaultVeiw MSDN上
这里是我用来做菜单的例子。
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]);
}
您可以使用此code.i希望它帮助你。
可能重复http://stackoverflow.com/questions/1939511/how-to-run-any-query-on-dataset – 2011-04-20 07:08:04
应与该问题合并,因为这一个包含更好的答案。 – gideon 2011-04-20 07:16:18