我知道我的ASP.NET,但我不得不承认,我对课程很愚蠢,不确定它们是如何工作的。还没有与他们合作但我想。但我所知道的是,这是一个我可以保持代码重用正确的地方吗?我的班级将如何看待我的代码?
所以这是我在大约3个表单上使用的代码 - 但我想将它保存在1个位置,只需在我点击btnSubmit时调用它。
Dim strConnection As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
Dim con As SqlConnection = New SqlConnection(strConnection)
Dim cmd As SqlCommand = New SqlCommand
Dim objDs As DataSet = New DataSet
Dim dAdapter As SqlDataAdapter = New SqlDataAdapter
cmd.Connection = con
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT distinct FIELD FROM TABLE order by FIELD"
dAdapter.SelectCommand = cmd
con.Open()
dAdapter.Fill(objDs)
con.Close()
If (objDs.Tables(0).Rows.Count > 0) Then
lstDropdown.DataSource = objDs.Tables(0)
lstDropdown.DataTextField = "FIELD"
lstDropdown.DataValueField = "FIELD"
lstDropdown.DataBind()
lstDropdown.Items.Insert(0, "Please Select")
lstDropdown2.Items.Insert(0, "Please Select")
Else
lblMessage.Text = "* Our Database seem to be down!"
End If
我必须在此处执行上面的代码?
Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
?????????????????????????????????
End Try
End Sub
艾蒂安
答案 0 :(得分:2)
一个类(在VB.Net中)被定义为
Public Class Person
private _firstName as string
private _lastName as string
'''Constructor with no params
public Sub New()
_firstName = ""
_lastName = ""
End Sub
'Contructor with params
Public Sub New(FirstName as String, LastName as String)
_firstName = FirstName
_lastName = LastName
End Sub
Public Property FirstName As String
Get
return _firstName
End Get
Set(value as String)
_firstName = value
End Set
End Property
Public Property LastName As String
Get
return _lastName
End Get
Set(value as String)
_lastName = value
End Set
End Property
Public Function HitHomeRun() As Boolean
....'Do some stuff here
End Function
End Class
然后,您可以实例化该类并调用其成员。
Dim p as New Person()
p.FirstName = "Mike"
p.LastName = "Schmidt"
dim IsHomeRunHit As Boolean = p.HitHomeRun()
Learn more about creating and consuming classes in VB.Net.
这是一个非常大的主题,可以通过许多不同的方式进行定义。但通常你要冒险进入的是N层架构。
数据访问层
业务逻辑
UI逻辑
现在可以在你的问题中建立一个类的方式,但从长远来看,很容易出现维护恐惧和可修改性的问题。更不用说非常容易出错了。在UI层中放置任何类型的数据访问代码都是不好的做法。
这是每层中具有单独的类层(关注点分离)的强大功能,使您能够重用代码并能够轻松修改以用于将来的扩展/功能等。这是进入软件架构非常广泛的主题放在一个帖子中。
但如果您真的对此感兴趣,可以通过一些链接指向正确的方向。
有软件可以减轻DAL的痛苦
1. Linq-To-SQL通过.Net Objects(编译查询)查询数据的能力
2. Entity Framework Linq-To-SQL的第2版
这实际上可以替换所有SQL代码。
答案 1 :(得分:1)
如果要重用代码,则应将其放在单独的项目中。这样,您可以将该项目添加到不同的解决方案(或仅引用已编译的dll)。
在您的Web项目中,您可以添加对项目的引用(如果您之前已经编译过它,则添加到dll,并且不希望将项目添加到解决方案中)。
在新项目中添加一个类文件,例如名为UIHelper
的文件。在为您创建的类骨架中,您可以添加方法。由于该类位于单独的项目中,因此它不知道页面中的控件,因此您必须向方法调用中的控件发送引用:
Public Shared Sub PopulateDropdowns(lstDropdown As DropDownList, lstDropdown2 As DropDownList)
... here goes your code
End Sub
在您的页面中,您可以通过引用页面中的下拉列表来调用它:
UIHelper.PopulateDropdowns(lstDropdown, lstDropdown2)
这将帮助您入门。关于使用类还有很多东西需要学习......
答案 2 :(得分:0)
我有时会创建一个“Common”类,并在其中放置我想要从不同位置调用的公共Shared方法。
这些方面的东西:
Public Class Common
Public Shared Sub MyMethod
'Do things.
End Sub
End Class
然后我会用:
来调用它Common.MyMethod
显然,你可以使用你需要的参数的子/函数定义。
很抱歉,如果我的VB.NET代码有点偏。我通常使用C#。
答案 3 :(得分:0)
我认为您应该考虑使用visual studio designer工具来进行数据访问和数据绑定。搜索类型化数据集