如何从asp.net使用SQL?

时间:2009-11-07 01:49:32

标签: asp.net sql

构建一个相对简单的网站,需要在数据库中存储一些数据(主要是身份验证,但每个用户都有一些东西)。我之前曾在几个网站上工作过,并在那里使用过数据库,但从未喜欢我访问数据库的方式。

我通常这样做的方法是使用一个SqlMethods.cs,它基本上是一个静态类,有很多静态方法,如bool CheckUserExistence(string username, string password)SqlDataReader GetJobListings(int advertiserId),每个都基本上是“打开连接,调用一个sproc,返回它返回的内容“。然而,这种方法对我来说似乎不太自然。我不能完全理解我想要的样子,但这似乎......很奇怪。

所以,我的问题是:你如何从asp.net项目访问数据库? 我正在使用SQL2005。我也不认为我需要任何类型的ORM,因为从数据库中获取真的不是很多,但也许它更容易用一个?建议一些事情。 谢谢!

编辑:我目前决定创建一个静态类Sql,它将包含许多与sql相关的方法(例如ExecuteReader(sprocName, params[])等)具有给定参数的sproc并返回DataReader 然后,使用AuthenticationCheckUserExistence(username, password)等方法设置特定功能的类,例如LogoffUser(session)。这些方法只需调用Sql.ExecuteReader("sp_Auth_CheckUserExistence", _some_params_here_)并根据需要处理结果 我不知道那是好还是坏,但它现在似乎对我有用。另外,我喜欢它的感觉 - 它完全分离了功能。

那么,还有其他建议吗?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

最简单的方法是为数据库中的每个表创建一个数据访问类。它应该具有表中所有列的私有变量和公共属性,并且您描述的方法应该填充内部变量(或使用它们来更新数据库)。

Public Class MyTable
    Private _id As Integer
    Private _Name as String

    Public ReadOnly Property ID As Integer
       ' Regular stuff here
    End Property

    Public Property Name As String
        ' Regular stuff here
    End Property

    Public Sub Load()
        ' Call SQL and get a data reader.
        ' Set _id and _Name from the data reader.
    End Sub
End Class

然后,在您的其他代码中:

Dim mt As New MyTable
mt.Load()
' Now use mt.ID and mt.Name to access the data