数据表.选择检索所有行

本文关键字:检索 选择 数据表 | 更新日期: 2023-09-27 18:12:48

我有这样的代码:

allGyms.Select("type = 1");
foreach(DataRow allGymsRow in allGyms.Rows)
{
}

allGyms存储了25行,其中7行类型为1,另外7行类型为2,以此类推。现在我试图使用当前的DataTable来检索类型为1的行,所以它应该返回7行。但是,当我调试到foreach循环时,allgym有25行,而不是预期的7行。

有人知道我做错了什么吗?

数据表.选择检索所有行

另一个答案是关于IEnumerable的Select方法。

我相信你正在尝试在DataTable上使用Select方法。

如果是这种情况,问题是您没有保存该方法返回的过滤数组。您需要保存返回的数组,然后遍历它。

var filteredRows = allGyms.Select("type = 1");
foreach(DataRow allGymsRow in filteredRows)
{ 
    ...
}

Select()对每个元素应用一个方法。这是改变集合(如数组)中的元素的一种优雅方式。

我认为你想创建一个数据表,这样你就可以从你的aspx.cs文件运行数据库查询,像这样:

DataTable dt = new DataTable();
        using (OracleConnection con = new OracleConnection(Application["ConnectionString"].ToString()))
        {
            con.Open();
            string strSQL = "SELECT * FROM YourTable WHERE type = 1";
            OracleDataAdapter adapter = new OracleDataAdapter(strSQL, con);
            adapter.Fill(dt);
            if (dt.Rows.Count > 0)
                return dt.Rows[0][0].ToString();
        }
        return "";

尝试同时使用Select和Where:

allGyms.Select().Where(t => t.type == 1);