У меня есть объект списка типа my class (Employee), и он содержит около 3 элементов.
Скажем, например:
empObj.Id = 3, empObj.Name = abc, emp.Value = Yes
empObj.Id = 4, empObj.Name = xyz, emp.Value = No
empObj.Id = 5, empObj.Name = pqr, emp.Value = Yes
Теперь я хочу вставить все элементыкак отдельные строки в моей БД с помощью хранимой процедуры.
Я не хочу нажимать на БД для каждого элемента.
Мой входной параметр для SaveMethod
в моем слое данных будетПриведенный выше список объектов и мой подход подобны следующему:
Public Overridable Function SaveMethod(businessEntity As List(Of Employee)) As Boolean
Using scope As System.Transactions.TransactionScope = New System.Transactions.TransactionScope()
'DECLARE CONNECTION VARIABLE
Dim objSqlConn As SqlConnection = Nothing
'DECLARE SQL PARAMS VARIABLE
Dim objSqlParams As SqlParameter() = Nothing
'DECLARE BOOLEAN VARIABLE
Dim bolReturnValue As Boolean = False
'SET THE CONNECTION
objSqlConn = GetCSSConnection()
'SET THE PARAMETERS TO THE STORED PROCEDURE
objSqlParams = New SqlParameter(3) {}
For i As Integer = 0 To businessEntity.Count - 1
objSqlParams(0) = New SqlParameter("@myParam1", SqlDbType.Int)
objSqlParams(0).Value = 2 ' businessEntity(i).Id
objSqlParams(1) = New SqlParameter("@myParam2", SqlDbType.Int)
objSqlParams(1).Value = businessEntity(i).Name
objSqlParams(2) = New SqlParameter("@myParam3", SqlDbType.Bit)
objSqlParams(2).Value = businessEntity(i).value
Next
'BUILD NEW SQL CONNECTION AND EXECUTE THE STORED PROCEDURE
'ASSIGN THE RESULT TO BOOLEAN VARIABLE
bolReturnValue = (Microsoft.VisualBasic.IIf(ExecuteNonQuery(objSqlConn, CommandType.StoredProcedure, "myStoredProcedure", objSqlParams) > 0, True, False))
CloseConnection(objSqlConn)
Return bolReturnValue 'RETURNS BOOLEAN VALUE
End Using
End Function
Он не выдает никакой ошибки, он также возвращает True.Но он не сохраняется в базе данных.
Чего здесь не хватает?Правильный ли этот подход?Есть ли лучший способ?