【问题标题】:'DataTable' does not contain a definition for 'Columns'“DataTable”不包含“Columns”的定义
【发布时间】:2013-12-17 13:32:38
【问题描述】:

尝试将列添加到数据表时出现以下错误

DataTable' 不包含 'Columns' 的定义,并且没有扩展方法 'Columns' 接受类型的第一个参数 'DataTable' 可以找到

这是产生错误的代码!

static void Main()
{
    // Get the DataTable
    DataTable myTable = getStatusTable();
}

static DataTable getStatusTable()
{
    // Create a DataTable with 4 columns       
    DataTable myTable = new DataTable();   

    myTable.Columns.Add("Dosage");
    myTable.Columns.Add("Drug");
    myTable.Columns.Add("Patient");
    myTable.Columns.Add("Date");

    // Create the Table Row
    myTable.Rows.Add(25, "Indocin", "David", DateTime.Now);
    myTable.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
    myTable.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
    myTable.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
    myTable.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
    myTable.Rows.Add(25, "Vitamin C", "Guzzyman", DateTime.Now);

    return myTable;
}

我该如何解决这个问题?

【问题讨论】:

  • 你添加using System.Data;了吗?
  • 有一个自定义的 DataTable 类?
  • 我刚刚在控制台应用程序中尝试了这个确切的代码,它运行良好,你能分享你的堆栈跟踪吗?
  • @Steve,范围内可能还有另一个 DataTable 类,添加 using 子句会导致冲突,如果是这种情况,就会清楚。
  • @Steve 我知道,但有时会发生

标签: c# asp.net datatable


【解决方案1】:

您在某处创建了一个自定义DataTable 类。此类位于using 列表中的命名空间中。您需要像这样完全限定它:

System.Data.DataTable myTable = new System.Data.DataTable();

【讨论】:

  • @ThomasLevesque,我认为这与其说是猜测,不如说是观察。如果class 被识别,但预期类的一个众所周知的成员没有被识别,则在可用命名空间列表中的某处有一个自定义的DataTable 类。它甚至可能与我想的这个类在同一个命名空间中。
  • 我也尝试过使用 System.Data.DataTable 但出现此错误 CS0029:无法将类型“DataTable”隐式转换为“System.Data.DataTable”
  • @Guzzyman,这是因为您引用DataTable 的所有地方都需要完全限定。您有一个DataTable返回类型,并且您正在使用返回值设置DataTable 的新引用。您需要完全限定所有其中。
  • @Guzzyman,请检查您是否在自己的代码中不小心创建了一个名为 DataTable 的类,如果不需要,请删除它。如果您无意中使用了“从使用中创建类”功能,就会发生这种情况。
  • @Guzzyman:如果它解决了您的问题,请考虑接受此答案。
【解决方案2】:

试试下面的代码

myTable.Columns.Add(new DataColumn("Dosage"));
myTable.Columns.Add(new DataColumn("Drug"));
myTable.Columns.Add(new DataColumn("Patient"));
myTable.Columns.Add(new DataColumn("Date"));

【讨论】:

  • 这会产生同样的错误,因为你只是使用了另一个版本的Add未定义集合的方法。
  • 是的...我使用 System.Data 添加
猜你喜欢
  • 2012-03-02
  • 1970-01-01
  • 1970-01-01
  • 2020-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
相关资源
最近更新 更多