如何在数据集上运行查询?

| 我有一个名为
dsView
DataSet
,其中包含数据。这是我用来读取XML的代码:
dsView = new DataSet();
dsView.ReadXml(@\"\\c:MyXml.xml\");
数据具有名为“ 3”的表,字段为“ 4”和“ 5”。如何在此“ 1”上运行查询? (例如:
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\'\");
我认为您无法在ѭ0上运行SQL查询,因为它没有查询引擎。但是您可以尝试使用LINQ to DataSet。 另外,如果您只对数据感兴趣(而不对“ 0”的数据绑定属性感兴趣),建议您使用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 Like查询。 您将使用此DataTable重载。选择此处以执行以下操作:
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]);
    }
您可以使用此代码。希望对您有所帮助。

要回复问题请先登录注册