我在向dataTable添加新团队时遇到了麻烦。 VisualStudio指向具有NullReference错误的line teams.Rows.Add(dr)。你能帮我吗?
private void addTeam(String nazwa)
{
DataRow dr = players.NewRow();
//dr["playerID"] = nazwa;
dr["nazwa"] = nazwa;
teams.Rows.Add(dr); //<--there is en error
}
class Program
{
static DataTable players ;
static DataTable teams;
private DataSet teamMenager;
static void Main(string[] args)
{
答案 0 :(得分:2)
DataTable
尚未initialized
static DataTable teams;
您可以使用default constructor
来初始化它static DataTable teams = new DataTable();
static DataTable players = new DataTable();
虽然不清楚为什么你让它们变得静止。这意味着Program
的每个实例都会共享相同的DataTable
,这可能会导致多个线程出现问题,因为您需要提供锁定机制。只需删除静态并创建Program
的实例:
static void Main(string[] args)
{
Program p = new Program();
p.Start(); // open your form(s) there and add teams or what else
// ...
修改:还有其他错误。您是通过DataRow
创建新的players.NewRow
,但将其添加到DataTable teams
。这是不允许的。每个DataRow都属于一个DataTable。这不能改变,将导致ArgumentException
。
DataRow dr = players.NewRow();
dr["nazwa"] = nazwa;
所以请将其添加到玩家:
players.Rows.Add(dr); //<--there is en error