我在VB.NET应用程序中有2个表格-FormA
和FormB
。这两种表单都有一个名为 textbox1
的文本框和一个相同的功能,该功能从某些SQL查询-Sub getvaluefromSQL()
-更新文本框,该框由按钮或其他内容触发。
- 是否有一种方式可以从称为
CentralModule
的共享模块中访问getvaluefromSQL()
,而不是以两种形式复制getvaluefromSQL()
的代码? - 如何确保
getvaluefromSQL()
从称为它的表单中更新正确的文本框?
谢谢。
您可以使用公共(或朋友)函数创建一个模块。您将把文本框作为参数传递给该函数。如果SQL不同,您也可以通过SQL。
正如其他人建议的那样,具有在数据库,UI上执行操作的函数,也许还有其他功能是一个可怕的想法。您需要分开关注点,从而为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