ユーザーがシステムで必要とするいくつかの機能にソリューションを適用しようとしています。
ユーザーから、システムにロック システムを実装するように要求されました。サイトへのアクセスを必要とする可能性のある複数のユーザーがいますが、ユーザーは、Web サイトのレコードを個別にロックし、メモを追加してロックを解除し、他のユーザーができるようにしたいと考えています。同じ。
Web ページに単に btnLock という名前のボタンがあり、データベースに LockedBy という名前の列を追加し、次のストアド プロシージャを使用しています...
ALTER PROCEDURE LockWeeklyTest
(
@AgendaID BIGINT,
@LockingUser VARCHAR(20)
)
AS
BEGIN
SET NOCOUNT ON
UPDATE
WeeklyAgenda
SET
LockedBy = @LockingUser
WHERE
AgendaID = @AgendaID
AND
LockedBy IS NULL
END
Weekly Classという名前のクラスがあり、次のコードがあります...
Public Shared Sub LockWeeklyAgenda(ByVal WeeklyClass As WeeklyClass)
Using dbConnection As New SqlConnection(ConfigurationManager.AppSettings("dbConnection"))
dbConnection.Open()
Dim dbTrans As SqlTransaction
dbTrans = dbConnection.BeginTransaction()
Using dbCommand As SqlCommand = dbConnection.CreateCommand
With dbCommand
.Transaction = dbTrans
.CommandType = CommandType.StoredProcedure
.CommandText = "LockWeeklyTest"
'Add Parameters for Update
.Parameters.AddWithValue("@AgendaID", WeeklyClass.AgendaID)
.Parameters.AddWithValue("@LockingUser", WeeklyClass.LockedBy)
dbCommand.ExecuteNonQuery()
End With
End Using 'dbCommand
dbTrans.Commit()
End Using
End Sub
butlock の以下のコードは Loggedby フィールドにユーザー名を入力すると考えていましたが、そうではありません。
Protected Sub btnLock_Click(sender As Object, e As System.EventArgs) Handles btnLock.Click
Dim lock As New WeeklyClass
If lock.LockedBy = "Null" Then
lock.LockedBy = System.Environment.UserName
'lock.AgendaID = AgendaID
End If
' save to the database using the Class DAL
WeeklyClassDAL.LockWeeklyAgenda(lock)
End Sub
例として次のステートメントでテストしたように、ストアドプロシージャが機能することを知っています...
EXEC LockWeeklyTest 11, 'Betty'
btnlock_click と何か関係があると確信していますが、これが何であるかは 100% わかりません。どんな助けでも大歓迎です。