我似乎无法让我的 System.Data.DataTable 接受任何新行。下面是正在使用的代码。
using System.Data;
using System.Windows.Forms;
namespace DataTableToDGVTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
DataTable dataTable = new DataTable();
dataTable.Columns.Add("id", typeof(int));
dataTable.Columns.Add("name", typeof(string));
DataRow dataRow = dataTable.NewRow();
dataRow["id"] = "1";
dataRow["name"] = "Jesse";
dataTable.Rows.Add(dataRow);
//Tried this as well, still doesn't work
//dataTable.Rows.Add(1, "Jesse");
}
}
}
Run Code Online (Sandbox Code Playgroud)
在调试时,我注意到DataTable.Rows.Count会从0增加到1,但是DataTable.Rows.List仍然为空,如下图所示
我已在 .NET Framework 4.6 中运行此代码,并在 4.7.1 中进行了尝试,结果都是相同的。
您正在检查物体的错误部分。您应该检查的是dataTable => rows => Results View => [0] => ItemArray. 请参阅下面的代码(更多扩展版本)以更好地演示。
static void Main(string[] args)
{
var dataTable = new DataTable();
dataTable.Columns.Add("id", typeof(int));
dataTable.Columns.Add("name", typeof(string));
var rowCount = dataTable.Rows.Count;
Console.WriteLine(rowCount);
var dataRow = dataTable.NewRow();
dataRow["id"] = "1";
dataRow["name"] = "Jesse";
dataTable.Rows.Add(dataRow);
var rowCountAfterAdding = dataTable.Rows.Count;
Console.WriteLine(rowCountAfterAdding);
foreach (DataRow row in dataTable.Rows)
{
foreach (var ia in row.ItemArray)
{
Console.WriteLine(ia);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1351 次 |
| 最近记录: |