将整行添加到for中的DataSet

时间:2015-01-21 08:34:39

标签: c#

我将向您展示我的代码,并在下面进行解释。

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。


问题是这样的。每次@i变大一点时,@ dsDisplay似乎都会从剪贴簿中删除并完成。我试图向@dsDisplay添加行,而不是使用新行重新创建行。求助。

1 个答案:

答案 0 :(得分:0)

我不确定你的说明书和你的描述有多么令人困惑,但你可以尝试一下,

DataSet dsSaved = null;
        DataSet ds = null;
        DataTable dt = null;
        DataSet dsDisplay = null;
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            dsSaved = manageSavedjob.GetJobByID(Convert.ToInt32(ds.Tables[0].Rows[i]["SavedJobID"].ToString()));

            dt = new DataTable();

            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");


            DataRow workRow = dt.NewRow();

            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);
        }