我正在尝试查找有关以下内容的信息。我有一个包含CD音乐信息和唯一ID的表,我的Web服务(VS中的C#)访问该表的行信息。现在我想在另一个表中存储何时以及从Web服务(JSON)调用请求的唯一ID。谁能指点我一些好消息?我查看了触发器,但他们没有在sql中完成工作,因为唯一检测到更新,删除或插入,在我的情况下,信息只被访问而不是更改所以现在我想也许我可以在Web服务调用中执行此操作
实施例: 从表CD中读取有关ID的信息,并在表CD-ACCESS中读取存储ID以及日期和时间。
答案 0 :(得分:0)
我建议让数据库或数据库层进行访问跟踪。由于您使用的是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;
}