如何在DataTable中添加数据连续性?

时间:2016-07-12 07:25:52

标签: c#

我想继续向已包含数据的数据表添加数据。

在此方法中,获取的数据如下:dt = { 1, 2 }.

public class GetRowOne()
{
    // some code
    if(contains == null)
    {
        DataRow dr = dt.NewRow();
        string[] array1 = lstHeader[1].ToArray();
        for (int i = 0; i < 8; i++)
            dr[i] = array1[i];
    }
    // some code
}

dt.Rows.Add(dr.ItemArray);

现在,在另一种方法中,我也像这段代码一样创建并运行它。

public class GetRowTwoAndThree()
{
    // some code
    DataRow dr = dt.NewRow();
    string[] array1 = lstHeader[1].ToArray();
    for (int i = 0; i < 8; i++)
        dr[i] = array1[i];
    // some code
}

dt.Rows.Add(dr.ItemArray);

它会在dt中返回新值:dt = {4,5}

我认为错误就像:DataRow dr = dt.NewRow();或行:dt.Rows.Add(dr.ItemArray);

你会看:dt.Rows.Add(dr.ItemArray)。之前的所有数据都将为null,它只会向dt添加新值。

我希望dt保存旧数据和新数据,它应该是:

dt = { 1, 2, 3, 4 }

1 个答案:

答案 0 :(得分:1)

将数据存储在ViewState["OldData"]中,再次添加新行后,将商店dt存储在ViewState["OldData"]中。

如果在同一页面中调用方法然后将其存储在viewstate中,您还可以存储在会话中或为该数据表创建get set方法

DataTable dt{get; set;}

编辑 - :

DataTable dt = new DataTable();
        public Form1()
        {
            InitializeComponent();
            dt.Columns.Add("Column1");
            dttest = dt;
        }

        public void GetRowOne()
        {
            DataRow dr = dt.NewRow();
            dr["Column1"] = "Test";
            dt.Rows.Add(dr);

            dttest = dt;
        }

        DataTable dttest { get; set; }

        private void button1_Click(object sender, EventArgs e)
        {
            GetRowOne();
        }