C# 如何在数据集上运行查询?
我有一个名为C# 如何在数据集上运行查询?,c#,winforms,C#,Winforms,我有一个名为dsView的DataSet包含数据。下面是我用来读取XML的代码: dsView = new DataSet(); dsView.ReadXml(@"\c:MyXml.xml"); 数据有一个名为MEN的表,其中包含Fname和Lname字段。如何在此dsView上运行查询?(例如:select*from-MEN,其中Fname='zz')您不能在数据集上运行完整的SQL语句——但是数据集中的数据表有一个名为select(string)的方法,该方法选择符合特定条件的数据行对象数
dsView
的DataSet
包含数据。下面是我用来读取XML的代码:
dsView = new DataSet();
dsView.ReadXml(@"\c:MyXml.xml");
数据有一个名为
MEN
的表,其中包含Fname
和Lname
字段。如何在此dsView
上运行查询?(例如:select*from-MEN,其中Fname='zz'
)您不能在数据集上运行完整的SQL语句
——但是数据集中的数据表
有一个名为select(string)
的方法,该方法选择符合特定条件的数据行
对象数组
查看
您可能需要执行以下操作(未经测试):
AFAIK您只能使用
您可以使用此处执行以下操作:
DataRow[] foundRows = dsView.Table[0].Select("Fname = `zz`");
dsView.Table[0]
应该指向男性的表格,并且应该有一列Fname
有效表达式与DataColumn表达式相同:
我认为您不能在数据集上运行SQL查询,因为它没有查询引擎。但是你可以试试
另外,如果您只对数据感兴趣(而不是数据集的数据绑定属性
),我建议您使用来查询文档
dsView.Table[0].DefaultView.RowFilter = "Fname = 'zz'";
// now default view contains the filtered rows
//ds.Table[0].DefaultView
关于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
您可以使用此代码。我希望它对您有所帮助。的可能副本应该与该问题合并,因为此问题包含更好的答案。@Gali:在数据行数组上进行foreach操作
-这只是标准的ADO.NET。。。。
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]);
}