我建议让数据库或数据库层进行访问跟踪。由于您使用的是sql-server,我建议使用存储过程来进行读访问。在那里你可以做任何你想跟踪发生的事情(无需连接或至少与Web服务再次通信)。
CREATE PROCEDURE [dbo].[stpReadInformation]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @readId int;
SELECT @readId = SELECT Id FROM tabCdInfos WHERE ....
INSERT INTO tabCdAccesses
@readId, GETDATE(), <UserInfo>, ...
SELECT @readId;
END
如果需要,您可以执行此事务。
这里是通过ado.net访问存储过程
using (var con = new SqlConnection(_connectionstring))
{
con.Open();
var cmd = new SqlCommand(<NameOfStoredProcedure>, con) { CommandType = CommandType.StoredProcedure };
cmd.Parameters.Add("@param", DbType.String).Value = <yourParamValue>;
var rdr = cmd.ExecuteReader();
if (rdr.Read())
{
return new YourDataModel(
rdr.GetGuid(0),
rdr.GetInt32(1)
}
return null;
}
感谢一个例子,我不知道,因为我没有改变任何数据,我只是想知道和存储从访问什么表行CD表。基本上我只是想在该表上进行某种自定义分析以找出最受欢迎的CD,并在网站上进一步使用该信息。 –