0

将新团队添加到数据表时遇到问题。VisualStudio 指向带有 NullReference 错误的行 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)
    {
4

1 回答 1

2

DataTable尚未初始化_

static DataTable teams;

例如,您可以使用默认构造函数对其进行初始化:

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
    // ...

编辑:还有其他问题。您正在创建新的DataRowvia,players.NewRow但将其添加到 DataTable teams。这是不允许的。每个 DataRow 都属于一个 DataTable。这无法更改,并且会导致ArgumentException.

DataRow dr = players.NewRow();
dr["nazwa"] = nazwa;

所以将其添加到播放器中:

players.Rows.Add(dr); //<--there is en error
于 2012-12-04T22:26:31.607 回答