如何在数据集中添加一列,每行都有一个变量值(int)

Posted

技术标签:

【中文标题】如何在数据集中添加一列,每行都有一个变量值(int)【英文标题】:How to add a column in a Dataset, with a variable value (int) for each row 【发布时间】:2019-06-08 10:53:41 【问题描述】:

我有一个使用 WCF 服务中的方法从我的 mysql 数据库中获取的数据集。此数据集包含我的数据库中的项目列表。 这是一个项目列表,显示如下:

ID |名称

1 |吐司

(这是一个例子)

我想在数据集的末尾添加一个新列,如下所示:

ID |姓名 |状态

1 |吐司 | 1

我有另一种返回 int 的方法。对于参数,此方法采用项目的 ID。例如,Toast 的 id 是 1。所以我输入我的方法,参数为 1。你明白我的意思吗?

所以我有一个包含这个的数据集:

ID |名称

1 |吐司

和一个包含 this 的 int : 1

所以,我想根据项目的 ID 添加一个新行。 请记住,我可以有许多其他项目,所以我需要检查任何行..

我不知道如何继续... 感谢您的帮助。

【问题讨论】:

首先向DataTable 添加一个新列,然后向新行添加值。一个 DataSet 由一个或多个 DataTables 组成。 【参考方案1】:

已经在这里回答了:

Add new column and data to datatable that already contains data - c#

DataTable dt = sql.ExecuteDataTable("sp_MyProc");    
dt.Columns.Add("Status", typeof(System.Int32));    
foreach(DataRow row in dt.Rows)
    row["Status"] = GetStatus(row["ID"]);   

一个完整的例子

void Main()
   
    //setup 
    DataSet projects = new DataSet("ProjectsDataSet");
    projects.Tables.Add(new DataTable("ProjectsTable"));

    DataTable ProjectsDataTable = projects.Tables["ProjectsTable"]; 

    ProjectsDataTable.Columns.Add("id", typeof(Int32));
    ProjectsDataTable.Columns.Add("name", typeof(string));

    var row1 = ProjectsDataTable.NewRow();
    row1["id"] = 1;
    row1["name"] = "some project name";
    ProjectsDataTable.Rows.Add(row1);

    //you are here

    //add a column
    ProjectsDataTable.Columns.Add("status", typeof(Int32));

    //populate column
    foreach (DataRow row in ProjectsDataTable.Rows) 
        row["status"] = 123;        
    

    projects.Dump(); // shows result, only works in linqpad 

【讨论】:

不,它用于数据表。我的代码适用于数据集。 “如何在数据集中添加列”而不是“如何在数据表中添加列” 一个数据集包含数据表。数据表有列和数据。 我在我的回答中添加了一个完整的例子。

以上是关于如何在数据集中添加一列,每行都有一个变量值(int)的主要内容,如果未能解决你的问题,请参考以下文章

c#怎么在dataGridView里面添加一列?

c#怎么在dataGridView里面添加一列?

如何检查 CSS 变量值是不是等于另一个值

如何在gridview里添加一列详细信息

pyspark 数据框如果不存在则添加一列

如何在特定小时的滚动平均值的熊猫数据框中添加一列