0
我将向您展示我的代码并在下面进行解释。将整行添加到DataSet中的一个
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
dsSaved = manageSavedjob.GetJobByID(Convert.ToInt32(ds.Tables[0].Rows[i]["SavedJobID"].ToString()));
dt.Columns.Add("JobID");
dt.Columns.Add("JobConID");
dt.Columns.Add("jobTitle");
dt.Columns.Add("jobInfo");
dt.Columns.Add("priceFrom");
dt.Columns.Add("priceTo");
dt.Columns.Add("dateSent");
dt.Columns.Add("lastUpdated");
dt.Columns.Add("postUser");
dt.Columns.Add("address");
dt.Columns.Add("workers");
workRow[0] = Convert.ToInt32(dsSaved.Tables[0].Rows[0]["JobID"].ToString());
workRow[1] = Convert.ToInt32(dsSaved.Tables[0].Rows[0]["JobConID"].ToString());
workRow[2] = dsSaved.Tables[0].Rows[0]["jobTitle"].ToString();
workRow[3] = dsSaved.Tables[0].Rows[0]["jobInfo"].ToString();
workRow[4] = Convert.ToInt32(dsSaved.Tables[0].Rows[0]["priceFrom"].ToString());
workRow[5] = Convert.ToInt32(dsSaved.Tables[0].Rows[0]["priceTo"].ToString());
workRow[6] = dsSaved.Tables[0].Rows[0]["dateSent"].ToString();
workRow[7] = dsSaved.Tables[0].Rows[0]["lastUpdated"].ToString();
workRow[8] = dsSaved.Tables[0].Rows[0]["postUser"].ToString();
workRow[9] = dsSaved.Tables[0].Rows[0]["address"].ToString();
workRow[10] = Convert.ToInt32(dsSaved.Tables[0].Rows[0]["workers"].ToString());
dt.Rows.Add(workRow);
dsDisplay.Tables.Add(dt);
count = dsDisplay.Tables[0].Rows.Count;
dt = new DataTable();
workRow = dt.NewRow();
}
基本上我想要做的就是收到一整排装满了来自数据库的详细信息(见dsSaved),并在得到那个,将其添加到workRow {DataRow的workRow = dt.NewRow( ); }。然后我将它放入数据表中,并将数据表添加到@dsDisplay。然后重新启动workRow和@dt。
问题是这样的。 @dsDisplay似乎被删除并且每次@i都会从废品中删除。我试图将行添加到@dsDisplay,而不是用新行重新创建它。请帮助。
;在每次迭代中添加新的数据表?您需要创建dt并在循环之前将其添加到dsDisplay。在循环中,您需要向dt添加新行。 [拿起例子](https://msdn.microsoft.com/en-us/library/system.data.datatable.rows(v = vs.110).aspx) – Reniuz 2015-01-21 08:38:38
谢谢。赞赏。 – 2015-01-21 08:53:51