【问题标题】:Vb.Net Add table to dataset and send it to an other formVb.Net 将表添加到数据集并将其发送到其他表单
【发布时间】:2014-04-20 09:16:11
【问题描述】:

我有一个从 sql server 数据库加载汽车数据的应用程序,如下所示。

sql = " select car.*, (model + ' -- ' + plateNo) as selectCar from car"
daAdapter = New SqlDataAdapter(sql, sqlConn)
daAdapter.Fill(dsDataset, "car")

所以数据如下所示:

然后,我没有从数据库中加载不同的品牌价值,而是创建了一个数据表来获取品牌的不同价值。然后将其添加到数据集中,如下所示:

tblBrand = New DataTabl
tblBrand = dsDataset.Tables("car").DefaultView.ToTable(True, "brand")
tblBrand.TableName = "brand"
dsDataset.Tables.Add(tblBrand)

其实我用这个品牌表来显示品牌组合框里的过滤选项没有任何问题。

我需要的是,当我按下添加按钮时,我会转到另一个表单,并且我想在另一个表单中使用这个品牌选项。所以当我点击添加按钮时,我有以下代码:

Dim newCar As New frmCar(dsDataset)
carMode = "new"
newCar.ShowDialog()

并且我创建了一个frmCar形式的构造函数,如下:

Sub New(ByVal dsOptions)
    InitializeComponent()

    Try
       cmbBrand.DataSource = dsOptions.table("brand")
       cmbBrand.DisplayMember = "brand"
       cmbBrand.ValueMember = "brand"
    Catch ex As Exception
        MsgBox(Err.Description)
    End Try
End Sub

但是弹出如下错误:

Public member 'table' on type 'DataSet' not found.

我的代码有什么问题?

【问题讨论】:

    标签: vb.net forms dataset add


    【解决方案1】:

    你应该做的第一件事是把option strict and explicitOn都打开。这样可以防止你以后再犯这类错误。

    这个错误是不言自明的。 DataSet 没有名为 table 的公共成员(属性、方法等)。

    你所要做的就是改变:

    Sub New(ByVal dsOptions)
        cmbBrand.DataSource = dsOptions.table("brand")
    

    到:

    Sub New(ByVal dsOptions As DataSet)
        cmbBrand.DataSource = dsOptions.Tables("brand")
    

    【讨论】:

    • 此外,Intellisense 应该在代码中显示错误并能够提供更正。没有什么神秘的。
    • 好吧,这确实解决了问题。谢谢罗杰先生。
    猜你喜欢
    • 2014-01-18
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 2020-09-25
    • 2020-11-21
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多