如何只获取DataSet的一列?

时间:2013-06-11 16:56:25

标签: c# dataset

我有存储在DataSet中的应用程序的信息。数据集的表0(由DataSet.Tables [0]访问)有一个名为“Station ID”的列。我需要获得一个只包含此列的数据集。

如何使用所有工作站ID填充新的DataSet?

3 个答案:

答案 0 :(得分:2)

您需要使用包含列的DataSet创建新的DataTable并复制行:

        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        dt.Columns.Add(oldDt.Columns["StationID"]);

        for (int i = 0; i < oldDt.Rows.Count; i++)
        {
            dt.Rows[i]["StationID"] = oldDt.Rows[i]["StationID"];
        }
        ds.Tables.Add(dt);

或者,您可以克隆当前数据表并删除不需要的列:

        DataTable dt = oldDt.Copy();
        dt.Columns.Remove("Column1");
        dt.Columns.Remove("Column2");
        //...

答案 1 :(得分:1)

试试这个......

public DataSet DataSetStationId(DataSet yourDataSet) 
    {
        DataSet newDs = new DataSet();

        DataTable newDt = new DataTable();

        newDt.Columns.Add(new DataColumn("Station Id"));

        for (int i = 0; i < yourDataSet.Tables[0].Rows.Count; i++) 
        {
            newDt.Rows[i]["Station Id"] = yourDataSet.Tables[0].Rows[i]["Station Id"];
        }

        newDs.Tables.Add(newDt);

        return newDs;

    }

答案 2 :(得分:1)

如果您只想要一个值,并且您知道行号:

 DataSet ds = new DataSet();
 DataTable dt = new DataTable()
 int StationID = Convert.ToInt32(ds.dt.[RowID][StationID])