gpt4 book ai didi

c# - 为什么 DataTable.Rows.ImportRow 在传递新创建的 DataRow 时不起作用?

转载 作者:行者123 更新时间:2023-11-30 21:06:38 30 4
gpt4 key购买 nike

我需要将 newRow 添加到 MyHandler 并且它应该将该行添加到从传递给 MyHandler 的“方案”内部构建的表中。问题是当我使用 dt.ImportRow(row); 它没有添加任何行。如果我将 newRow 添加到 t 表,然后执行 handler.Add(t.row[t.Rows.Count - 1]); 那么它有效,但我不想添加到 t 表。 t 只是为了让我可以创建新行。

为什么 dt.ImportRow(row); 不起作用?如何解决?

{
var t = new DataTable();
t.Columns.Add(new DataColumn("Col1", typeof(string)));
t.Columns.Add(new DataColumn("Col2", typeof(byte)));
t.Columns.Add(new DataColumn("Col3", typeof(byte)));
t.Rows.Add("a", 1, 1);
t.Rows.Add("b", 2, 2);

// MyHandler build internal table from the scheme
var handler = new MyHandler(t.Clone());

var newRow = t.NewRow();
row["Col1"] = "c";
row["Col2"] = 3;
row["Col3"] = 3;

handler.Add(row);
}

public class MyHandler
{
DataTable dt;
public class MyHandler(DataTable scheme)
{
dt = scheme;
}
public void Add(DataRow row)
{
dt.ImportRow(row);
}
}

最佳答案

您应该只使用 ImportRow 从另一个 DataTable 添加行。每MSDN ,用 DataTable.NewRow 创建的行应该用 DataTable.Rows.Add 添加。

关于c# - 为什么 DataTable.Rows.ImportRow 在传递新创建的 DataRow 时不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11035479/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com