在包含 dgdMain.DataSource = dt;
的行上,我收到 “NullReferenceException was unhandled” 错误。我试图找到一个解决方案,我相信它很简单,但我显然错过了它。感谢您提供任何意见。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Dashboard
{
public partial class frmMain : Form
{
public frmMain()
{
BindingSource bindingSource = new BindingSource();
DataTable dt = Program.GetDataTableFromCSV("../../res/sampledata.csv");
dgdMain.DataSource = dt;
InitializeComponent();
}
}
}
...这是
GetDataTableFromCSV()
:public static DataTable GetDataTableFromCSV(string path)
{
DataTable dataTable = new DataTable();
String[] values;
values = File.ReadAllLines(path);
string[] csvRows = System.IO.File.ReadAllLines(path);
string[] headers = csvRows[0].Split(',');
// Adding columns name
foreach (var item in headers)
dataTable.Columns.Add(new DataColumn(item));
string[] fields = null;
foreach (string csvRow in csvRows)
{
//Debug.Write(csvRow+"\r\n");
fields = csvRow.Split(',');
DataRow row = dataTable.NewRow();
row.ItemArray = fields;
dataTable.Rows.Add(row);
}
return dataTable;
}
最佳答案
InitializeComponent 必须在上面。应该是这样的:
public frmMain()
{
InitializeComponent();
BindingSource bindingSource = new BindingSource();
DataTable dt = Program.GetDataTableFromCSV("../../res/sampledata.csv");
dgdMain.DataSource = dt;
}
关于c# - 将 DataTable 分配给 DataGridView 时的 "NullReferenceException was unhandled",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17331311/