Vb .Net应用程序中的共享子/功能

时间:2017-09-27 17:06:01

标签: .net vb.net forms function module

我在VB.NET应用程序中有两个表单 - let data = [{ type: "Typical", tower: "T3", floor: "4", flat: "B", status: "" }, { type: "Typical", tower: "T5", floor: "5", flat: "C", status: "closed" }, { type: "Typical", tower: "T7", floor: "4", flat: "B", status: "closed" }, { type: "Typical", tower: "T4", floor: "7", flat: "B", status: "closed" }, { type: "Typical", tower: "T2", floor: "5", flat: "C", status: "opening" }, ]; let dataObj = []; data.forEach(function(item) { let getIndex = dataObj.findIndex(function(item2, index) { return item2.title === item.status }) if (getIndex === -1) { let obj = {}; obj.title = item.status obj.times = 1; dataObj.push(obj) } else { dataObj[getIndex].times = dataObj[getIndex].times + 1; } }) console.log(dataObj) dataObj.forEach(function(item) { for (var keys in item) { document.write(keys + ':' + item[keys] + '</br>') } })FormA。两个表单都有一个名为FormB的文本框和一个相同的函数,可以从某个SQL查询更新文本框 - textbox1 - 由按钮或其他东西触发。

  1. 表单是否有办法从名为Sub getvaluefromSQL()的共享模块访问getvaluefromSQL(),而不是在两种表单中复制CentralModule的代码?
  2. 如何确保getvaluefromSQL()从调用它的表单中更新正确的文本框?
  3. 感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用公共(或朋友)功能创建模块。您可以将文本框作为参数传递给函数。如果SQL不同,您也可以传递SQL。

答案 1 :(得分:0)

正如其他人所说,拥有一个对数据库,用户界面以及其他东西执行操作的功能是一个糟糕的主意。您需要将您的关注点分开,从而为I / O操作,UI管理,业务逻辑等设计不同的功能。所以您需要稍微改变一下设计。

首先,当然有一种方法可以在共享模块中放置公共代码 - 例如CentralModule。这就是模块的用途。

Module CentralModule

    Public Function getvaluefromSQL() As String
        Dim result As String

        ' Fetch your data from SQL, calculate as necessary and assign the result

        Return result
    End Function

End Module

然后,在每个表单中执行以下操作:

Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    textbox1.Value = CentralModule.getvaluefromSQL

End Sub