如何在数据集中添加一列,每行都有一个变量值(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)的主要内容,如果未能解决你的问题,请参考以下文章