.net 数据表具有空值

.net 数据表具有空值,.net,database,vb.net,datatable,.net,Database,Vb.net,Datatable,在FbuildingSettings.vb上 Public camButtonDtable As DataTable Dim names = From row In FbuildingSettings.camButtonDtable.AsEnumerable() Select row.Field(Of String)("Building") Distinct For Each word In names ComboBox1.Items.Add(word) Nex

FbuildingSettings.vb上

Public camButtonDtable As DataTable
Dim names = From row In FbuildingSettings.camButtonDtable.AsEnumerable() Select row.Field(Of String)("Building") Distinct
    For Each word In names
        ComboBox1.Items.Add(word)
    Next
然后我在
Fbuilding.vb
-Form中使用了它

Public camButtonDtable As DataTable
Dim names = From row In FbuildingSettings.camButtonDtable.AsEnumerable() Select row.Field(Of String)("Building") Distinct
    For Each word In names
        ComboBox1.Items.Add(word)
    Next
基本上我想做什么就做什么,从一列中获取每个不同的数据。所以我在
FbuildingSettings.vb

Dim names = From row In camButtonDtable.AsEnumerable() Select row.Field(Of String)("Building") Distinct
    For Each word In names
        comboBuilding.Items.Add(word)
    Next
我得到错误:

尝试此操作:
Public-camButtonDtable作为新的DataTable
-它已编译,但组合框不显示任何内容。
我做错了什么?因为

  • 您的标题与引发的异常无关
  • 此时,问题不在于是否填充了
    DataTable
    ,而在于是否实例化了
    DataTable
  • 您的
    数据表
    未实例化
  • 您的错误发生在:

    <DataTable>.AsEnumerable()
    
    解决方案

  • 确保该表存在
  • 确保表已正确初始化

  • 最终找到了解决方案(这就是我使用的解决方案):

    这应该是这样的(不是很确定):

    Dim queryBtn As String=“从tblCameraButtons中选择*
    FbuildingSettings.cambuttonTable=.Fill(queryBtn)
    
    有没有可能
    camButtonDtable
    还没有填充?我的数据库中有3个数据。当我尝试运行
    FbuildingSettings
    时,数据表已经填充,即使我没有运行表单,但当我运行声明表单时,它会显示为null,这就是我丢失的地方。hahaIt不在乎你的数据库里有什么。如果你不从数据库中检索数据并填充数据表,那么你当然不会看到任何数据,因为数据表是空的。正如我所说,使用
    New
    代码可以让我编译应用程序,但这并不能解决问题,尽管它是编译的,尽管我使用了另一个表单中相同的代码和原则,但组合框中没有项目。我真正感到困惑的是,
    camButtonDtable
    是在发生此错误的表单上声明的,而不是在另一个表单上声明的。
    FbuildingSettings.camButtonDtable = databaseFunctions.GetDataTable(queryBtn) 'to iniatialize data on cambtndtable
    
    Dim queryBtn As String = "SELECT * FROM tblCameraButtons"
    FbuildingSettings.camButtonDtable = <DataTable>.Fill(queryBtn)