C# 为什么我不能传递表名以从DataSet.tables获取表?

C# 为什么我不能传递表名以从DataSet.tables获取表?,c#,dataset,C#,Dataset,我有一张定制的桌子。以下是有关自定义表的信息。这是桌子的名字 表名称:customtable\u TwitterCacheTable 为什么我不能使用表名访问表 所以在我的代码中,如果我这样做,我将得到一个NullReference异常 foreach (DataRow row in ds.Tables["customtable_TwitterCacheTable"].Rows) { CustomTableIt

我有一张定制的桌子。以下是有关自定义表的信息。这是桌子的名字

表名称:customtable\u TwitterCacheTable

为什么我不能使用表名访问表

所以在我的代码中,如果我这样做,我将得到一个NullReference异常

   foreach (DataRow row in ds.Tables["customtable_TwitterCacheTable"].Rows)
                    {
                    CustomTableItem deleteItem = new CustomTableItem(row, customTableClassName);

                    deleteItem.Delete();

                }
但是下面的方法似乎还可以

   foreach (DataRow row in ds.Tables[0].Rows)
为什么我不能传入表名以获取表?我必须使用这种基于索引的方法吗

请让我知道


谢谢

您需要手动命名数据集中的表。除非它被不恰当地命名,否则它只被称为ds.tables[0]。根据您获取数据的方式,您可以:

//if you used a SqlDataAdapter
da.Fill(ds, "customtable_TwitterCacheTable");
或者你可以这样做:

ds.Tables[0].TableName = "customtable_TwitterCacheTable";

确认您在数据集中为该表指定了一个名称,并且该名称匹配。是的,我已与数据库进行了检查。提供的名称正确。我在SQL select*中从customtable_TwitterCacheTable执行了查询,它返回的行很好。但一旦我这样做ds.Tables[customtable\u TwitterCacheTable]。行,我就会得到Null异常