我一直在尝试将解决方案应用于用户在其系统上需要的某些功能。
一个用户要求我在他们的系统上实现一个锁定系统。他们有多个用户可能需要访问该站点,但用户希望他们能够独立锁定网站中的记录,以便他们添加注释然后解锁,以便其他用户能够这样做相同。
我的网页上有一个简单命名为 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% 确定这是什么。任何帮助都是非常重要的。