.net调用存储过程时保存数据更改

问题描述

想做一个这样的功能:记录用户登录系统后所进行的所有的数据库操作,这里说的用户登录不是指SQLSERVER的帐户,而是指的业务系统中的User登录。要求记录以下信息:执行操作的用户(User),操作时间,操作类型(增删改),操作的表,操作的字段,操作前的值,操作后的值。以前写了一个简单的,执行SQL的时候再往日志表或者日志文件中加入一条记录。但是这样做有一个问题,就是如果使用ADO.NET调用存储过程来做数据库操作的时候就记录不到这些了,没有办法记录到存储过程执行过程中做的数据操作这两天看到有人说SQL2008出了个新功能可以记录表中数据的更改,但是那样只是记录数据更改,没有和用户关联起来,也不行。跪求大神们指教!请给个详细点的解决方案!分不多了不好意思,全给了

解决方案

解决方案二:
在哪看到:有人说SQL2008出了个新功能可以记录表中数据的更改:参考这个:
解决方案三:
执行存储过程,你就在存储过程里面执行记录操作日志的呗。
解决方案四:

解决方案五:
既然是日志,你就直接记录用户执行了哪个存储过程,以及传入的参数,不就得了记录存储过程中都执行了哪些表有任何意义?存储过程中执行了什么你难道不知道?

时间: 2024-12-23 19:28:04

.net调用存储过程时保存数据更改的相关文章

《Android应用开发攻略》——2.4 在用户旋转设备时保存数据

2.4 在用户旋转设备时保存数据 Ian Darwin2.4.1 问题 当用户旋转设备时,Android通常销毁并重新创建当前活动.你希望在这一周期中保留某些数据,但是在此期间活动中的所有字段都将丢失.2.4.2 解决方案 对此有多种解决方案.如果所有数据都由简单类型组成(包括String),或者是Serializable类型,就可以在传入的Bundle的onSaveInstanceState()中保存数据. 另一种解决方案是在活动中返回一个任意的对象,实现onRetainNonConfigur

调用存储过程时注意要使用output做修饰符

调用存储过程时的注意事项:假如有输出参数,注意要使用output做修饰符. 示例如下: alter proc ABC ( @OutValue nvarchar(20) output ) as set @OutValue='aabbcc' select a,b from ab print @OutValue alter proc ABCV as Declare @OutValuea nvarchar(20) Exec ABC @OutValue=@OutValuea output select @

SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值

   我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked Server), 调用存储过程过程时,参数不能为NULL值. 否则就会报下面错误提示: 对应的英文错误提示为: EXEC xxx.xxx.dbo.Usp_Test NULL,NULL,'ALL' Msg 7213, Level 16, State 1, Line 1 The attempt by

存储过程 带参数-在调用存储过程时传入值不会被解析

问题描述 在调用存储过程时传入值不会被解析 if(!$is_exist2){ $sql_page=" create procedure page_art(in off int(10),in page_size int(10)) BEGIN select id,title,addtime,type from cj_art where type=9 order by addtime desc limit off,page_size; END "; //建立存储过程 mysql_query(

asp javascript 实现关闭窗口时保存数据的办法_javascript技巧

关闭窗口时保存数据的办法 <SCRIPT language="javascript">  function IfWindowClosed()  {   var win = null;  try  {  window.opener.name = "ss";  if ( window.opener.name != "ss" )  {  win = window.open("quit.asp","",

在.net中如何把调用存储过程代码写入数据连接层中

Oracle方面1.创建Oracle过程存储create or replace procedure proce_test(paramin in varchar2,paramout out varchar2,paraminout in out varchar2)as varparam varchar2(28);begin varparam:=paramin; paramout:=varparam|| paraminout; end;2.测试过程存储declare param_out varchar

关闭窗口时保存数据的办法

数据 <SCRIPT language="javascript"> function IfWindowClosed() { var win = null; try { window.opener.name = "ss"; if ( window.opener.name != "ss" ) { win = window.open("quit.asp","","width=100,heig

关闭窗口时保存数据的办法(解决ie5出现的不能保存的问题)

<SCRIPT language="javascript">    function IfWindowClosed()    {            var win = null;        try         {       window.opener.name = "ss";       if ( window.opener.name != "ss" )        {           win = window.o

使用EF调用存储过程查询数据列表并返回输出参数

问题描述 代码如下JRQEntitiesjrq=newJRQEntities();varobj=jrq.Database.SqlQuery<SMSTemplate>("select*fromSMSTemplateSetwhereId=@Id",newSqlParameter{ParameterName="Id",Value=1});if(obj.Count()>0){vara=obj.ToList();}这样传参数会报:如果使用string.For