将来自web服务的表行访问存储在其他表中

本文关键字:存储 其他 访问 web 服务 将来 | 更新日期: 2023-09-27 18:07:53

我正在寻找有关以下信息。我有一个CD音乐信息表和一个唯一的id和我的web服务(c#在VS)访问该表的行信息。现在我想在另一个表中存储何时以及从web服务(JSON)调用请求的唯一id。谁能告诉我一些有用的信息?我研究了触发器,但他们不做sql工作,因为唯一检测更新,删除或插入,在我的情况下,信息只被访问,不改变,所以现在我想也许我可以在web服务调用中做到这一点。

的例子:从表CD中读取ID信息,并将ID与日期和时间一起存储在表CD- access中。

将来自web服务的表行访问存储在其他表中

我建议让数据库或db层进行访问跟踪。由于您正在使用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;
        }