8

我正在尝试制作一个 DataTable,然后向其中添加几行。这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;


namespace thisNamespace
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable dt=new DataTable();
            dt.Columns.Add("XYZID");
            DataRow dr=dt.NewRow();
            dr["XYZID"]=123;
            dt.ImportRow(dr);
            dr["XYZID"] = 604303;
            dt.ImportRow(dr);

        }
    }
}

当我单步执行程序时,dr成功初始化并填充了值,但是之后ImportRow(dr),行数dt仍然为 0。我觉得我必须遗漏一些明显的东西。这里出了什么问题?

4

4 回答 4

11

如果该行被分离(就像它第一次创建时一样) ImportRows 静默失败(没有例外) - 为了能够导入行,您必须将其添加到表中。之后,您可以将其导入其他表。

于 2015-02-26T12:24:50.963 回答
7

试试这个代码:

dt.Rows.Add(dr)

于 2013-04-05T03:18:08.613 回答
1

它可以帮助你

DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(int));
    table.Columns.Add("Drug", typeof(string));
    table.Columns.Add("Patient", typeof(string));
    table.Columns.Add("Date", typeof(DateTime));

    //
    // Here we add five DataRows.
    //
    table.Rows.Add(25, "Indocin", "David", DateTime.Now);
    table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
    table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
    table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
    table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
于 2013-04-05T04:19:04.450 回答
0

您首先需要添加行:

 dt.Rows.Add(dr);

然后你必须调用下面的方法来提交它:

 dt.AcceptChanges();
于 2013-04-05T08:30:16.290 回答