我是一个新的开发人员。
我有一个问题,创建一个网站,需要访问一个用户帐户,并通过不同的网页检索数据库中的所有信息,例如一个页面查看他的个人资料数据;另一个页面查看他已经创建的考试…等。
我所做的是为每个单独的aspx页面创建一个新对象,并从该对象连接到sql server数据库,我觉得这个对象有问题。
问题是,有没有什么方法可以让我只定义一次数据库对象,让它可以从同一个网站的不同网页访问,并从该对象执行sql查询和检索数据?
谢谢

最佳答案

我们使用MVC实现…也许您可以根据需要调整它:
连接管理器

Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Data.SqlClient
Imports System.Web.Configuration
Imports System.Data

Public Class clsConnectionManager

Implements IDisposable
<ThreadStatic> _
Private Shared pSqlConnection As SqlConnection
Private Shared pConnectionString As String

Public Shared ReadOnly Property Connection() As SqlConnection
    Get
        If pSqlConnection Is Nothing Then
            pConnectionString = WebConfigurationManager.ConnectionStrings("DefaultConnection").ConnectionString
            pSqlConnection = New SqlConnection(pConnectionString)
            pSqlConnection.Open()
        End If

        If pSqlConnection.State = ConnectionState.Closed Then
            pSqlConnection.Open()
        End If

        Return pSqlConnection
    End Get
End Property

Public Sub Dispose() Implements System.IDisposable.Dispose
    If pSqlConnection IsNot Nothing Then
        pSqlConnection.Close()
    End If
End Sub

End Class

web.config配置
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=localhost;Initial Catalog=yourDBName;User ID=YourDBUserName;Password=YourUserPassword" providerName="System.Data.SqlClient" />
</connectionStrings>

使用
在课堂上,你可以这样做:
Public Sub dbGetAll()
        Try
            Using New clsConnectionManager()

                Using lObjSQLCommand = New SqlClient.SqlCommand("StoredProcedureName", clsConnectionManager.Connection)
                    lObjSQLCommand.CommandType = CommandType.StoredProcedure
                    Using lObjSqlDataReader As SqlClient.SqlDataReader = lObjSQLCommand.ExecuteReader()
                        Do While lObjSqlDataReader.Read()
                            /*Read rows...*/
                        Loop
                    End Using
                End Using
            End Using
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

10-02 06:24
查看更多