【问题标题】:VB.NET Filling multiple datatables in same dataset, NO SQL - ErrorVB.NET 在同一个数据集中填充多个数据表,没有 SQL - 错误
【发布时间】:2013-07-02 17:30:35
【问题描述】:

最近我一直在尝试处理数据集和数据表,我发现了一个我已经尝试解决了大约 2 小时的问题,并且我还粉碎了 Google 搜索按钮。

    Dim newCustomersRow As DataRow = DataSet1.Tables("Customers").NewRow()

    newCustomersRow("CustomerID") = "ALFKI"
    newCustomersRow("CompanyName") = "Alfreds Futterkiste"

    DataSet1.Tables("Customers").Rows.Add(newCustomersRow)

问题不在于表格本身,因为它是一个包含所需表格的无类型数据集,但我在 DataSet1.Tables 附近遇到了错误。

错误:错误 4 对非共享成员的引用需要一个对象 参考。

【问题讨论】:

  • DataSet1 是如何实例化的?返回多个记录集的服务器端查询(select * from foo;select * from bar)在使用 DataAdapter 时将产生一个 DataSet 客户端。
  • 您的 DataSet1 是使用 Visual Studio 设计的还是以编程方式构建的?

标签: vb.net datatable dataset


【解决方案1】:

您必须创建DataSet1 的实例。

例如:

Dim ds1 As New DataSet1
Dim newCustomersRow As DataRow = ds1.Tables("Customers").NewRow()

newCustomersRow("CustomerID") = "ALFKI"
newCustomersRow("CompanyName") = "Alfreds Futterkiste"

ds1.Tables("Customers").Rows.Add(newCustomersRow)

这将创建您的 DataSet1 对象引用

【讨论】:

  • 您的代码在调试时给了我以下错误:对象引用未设置为对象的实例。它还给了我一个警告 1 变量“ds1”在被赋值之前被使用。运行时可能会导致空引用异常。
  • @user2551193 哦,对不起,我在声明数据集时忘记了关键字New
  • dl.dropboxusercontent.com/u/112467995/CrystalReportTest01.zip 正如您在我的项目中看到的,第二个数据表不会显示在我的 Crystal Report 上,有人吗?这就是我想要达到的目标。
  • @user2551193 不幸的是,我不再安装 CrystalReports(导致许多错误)。自从有了新的工作电脑,我就使用微软的 ReportViewer (VS Professional)。它是免费的,基本上是一样的。
  • 关于ReportViewer的更多信息,我已经提出了多个问题/答案。看一看:stackoverflow.com/questions/14940074/…
猜你喜欢
  • 1970-01-01
  • 2021-07-30
  • 1970-01-01
  • 2023-03-20
  • 2020-06-07
  • 2012-01-03
  • 1970-01-01
  • 2013-07-30
  • 2012-07-05
相关资源
最近更新 更多