Ứng dụng hiện tại của tôi đang sử dụng lớp truy cập dữ liệu dựa trên cá thể. Tôi khởi tạo lớp với chuỗi kết nối. Sau đó tôi gọi một phương thức sẽ thực hiện một số lệnh. Ví dụ có một phương pháp sẽ điền vào một tập dữ liệu. Về cơ bản, tôi vượt qua các thủ tục được lưu trữ và bất kỳ tham số SQL và lấy lại một tập dữ liệu. Có tốt hơn để có một lớp tĩnh để xử lý truy cập dữ liệu của tôi hoặc một cá thể dựa? Tôi có một lớp miền với các đối tượng, nhưng tôi không lập bản đồ các đối tượng như một ORM. Tôi đang truyền các đối tượng này vào các nhà máy, sau đó tạo lớp dữ liệu để lấy lại một tập dữ liệu. Sau đó tôi ánh xạ tập dữ liệu cho đối tượng. Tôi dự định cập nhật ứng dụng của mình (và chuyển sang C#), nhưng tôi không có thời gian để thay đổi toàn bộ. Tôi làm điều tương tự cho bản cập nhật chèn và xóa. Nếu những gì tôi đang làm là OK ngay bây giờ, hãy cho tôi biết. Bạn có thấy bất kỳ vấn đề nào với cách tiếp cận này không? Nếu không, tôi nên làm gì? Tôi đã không viết lớp này. Tôi tìm thấy nó trên mạng và nghĩ rằng đây là những gì tôi cần.Lớp truy cập dữ liệu Tĩnh hoặc Sơ thẩm dựa trên?
Dưới đây là một ví dụ của lớp dữ liệu:
Public Sub New(ByVal connectionString As String)
_connectionString = connectionString
End Sub
Public Function FillDataset(ByVal cmd As String, ByVal cmdType As CommandType, Optional ByVal parameters() As SqlParameter = Nothing) As DataSet
Dim connection As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
Dim sqlda As SqlDataAdapter = Nothing
Dim res As New DataSet
Try
connection = New SqlConnection(_connectionString)
command = New SqlCommand(cmd, connection)
command.CommandType = cmdType
AssignParameters(command, parameters)
sqlda = New SqlDataAdapter(command)
sqlda.Fill(res)
Catch ex As Exception
'CreateDataEntry(ex, WriteType.ToFile, cmd)
Finally
If Not (connection Is Nothing) Then connection.Dispose()
If Not (command Is Nothing) Then command.Dispose()
If Not (sqlda Is Nothing) Then sqlda.Dispose()
End Try
Return res
End Function
Public Function ExecuteNonQuery(ByVal spname As String, ByVal ParamArray parameterValues() As Object) As Object
Dim connection As SqlConnection = Nothing
Dim command As SqlCommand = Nothing
Dim res As Object = Nothing
Try
connection = New SqlConnection(_connectionString)
command = New SqlCommand(spname, connection)
command.CommandType = CommandType.StoredProcedure
command.Parameters.AddRange(parameterValues)
connection.Open()
command.ExecuteNonQuery()
res = command.Parameters(command.Parameters.Count - 1).Value
Catch ex As Exception
CreateDataEntry(ex, WriteType.ToFile, spname)
If Not (transaction Is Nothing) Then
transaction.Rollback()
End If
Finally
If Not (connection Is Nothing) AndAlso (connection.State = ConnectionState.Open) Then connection.Close()
If Not (command Is Nothing) Then command.Dispose()
End Try
Return res
End Function
Tôi hoàn toàn đồng ý. Tôi thích sử dụng LINQtoSQL nhất. Tôi đã có một số ý tưởng và mã được viết cho lần lặp tiếp theo của ứng dụng của tôi. Cảm ơn vì đầu vào của bạn! – DDiVita