【发布时间】:2010-11-15 15:07:31
【问题描述】:
在我的项目中,我需要记录对我的数据库执行的所有查询。作为一个例子,我们可以在这里使用员工用户数据。在那个类中,我有一个函数生成命令,参数如下:
Public Function SQLUpdate(ByVal conn As SqlClient.SqlConnection) As SqlClient.SqlCommand Implements IDbConnected.SQLUpdate
Dim sqlstatement As String = "UPDATE Persons SET Active=@act, Abbreviation=@abbr, FirstName=@first, LastName=@last, " & _
"Birthday=@bday, Email=@email,Tel=@tel, Fax=@fax, Registered=@reg, Admin=@adm"
sqlstatement &= " WHERE ID=" & Me.ID
Dim comm As New SqlClient.SqlCommand(sqlstatement, conn)
With comm.Parameters
.Add("@act", SqlDbType.Bit).Value = Me.Active
.Add("@abbr", SqlDbType.VarChar).Value = Me.Abbreviation
.Add("@first", SqlDbType.VarChar).Value = Me.FirstName
.Add("@last", SqlDbType.VarChar).Value = Me.LastName
.Add("@bday", SqlDbType.SmallDateTime).Value = Me.Birthday
.Add("@email", SqlDbType.VarChar).Value = Me.Email
.Add("@tel", SqlDbType.VarChar).Value = Me.Telephone
.Add("@fax", SqlDbType.VarChar).Value = Me.Fax
.Add("@reg", SqlDbType.Bit).Value = Me.Registered
.Add("@adm", SqlDbType.Bit).Value = Me.Administrator
End With
Return comm
End Function
当我请求命令文本时
comm.CommandText
然后我仍然得到参数查询
UPDATE Persons SET Active=@act, Abbreviation=@abbr, FirstName=@first, LastName=@last, Birthday=@bday, Email=@email,Tel=@tel, Fax=@fax, Registered=@reg , 管理员=@adm WHERE ID=2
当然,我需要将参数替换为值的查询。有没有一种简单的方法可以做到这一点,还是我需要编写一个自行替换的函数?
【问题讨论】: