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

时间:2019-01-14 12:38:17

标签: c# mysql visual-studio dataset

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

ID |名称

1 |吐司

(这是一个例子)

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

ID |姓名|状态

1 |吐司1

我还有另一个返回int的方法。对于参数,此方法采用项目的ID。例如,Toast的id为1。因此,我使用参数1输入方法。您明白我的意思了吗?

所以我有一个包含以下内容的数据集:

ID |名称

1 |吐司

和一个包含以下内容的int: 1

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

我不知道该如何进行... 感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

已经在这里回答:

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 
}