通过asp.net c#将新条目写入SQL Server日志文件

时间:2015-02-14 10:00:31

标签: c# asp.net .net sql-server logging

我已经在这里度过了几个紧张的时间,并且已经放弃尝试找到一个问题,或者解决了我想到的这个特殊方法的问题。

事实上,我已经完成了一项非常简单的任务来完成一份工作申请,但最后还是碰到了一堵墙。

我将开发一个ASP.NET c#Web应用程序,该应用程序显示一个名为Tasks的SQL Server数据库表中包含所有条目的GridView,如下所示:

ID int IDENTITY(1,1) PRIMARY KEY, 
Title nvarchar(50) not null, 
DateOpened datetime not null, 
Status bit not null DEFAULT (0) --> opened/closed, 
DateClosed datetime null, 
Description nvarchar(500) null 

我将添加所需的sql以便更好地了解它只是我现在没有它。您可能认为的代码最有助于避免使用大量复制粘贴代码的长达一英里的问题。我并没有等到它变得可用只是因为我认为代码本身几乎没有帮助。

我正在寻找一种方法,在用户尝试插入与现有任务具有相同名称和状态的新任务后,写入SQL Server日志文件的条目。

基本上,如果表格中有条目如下:

Title 1, opened

还有另一个名为Title 1且状态已打开的插入任务,应该提醒用户该尝试,并且应该登录到SQL Server日志文件。

我从来没有做过这样的事情,所以我认为它应该以某种方式从ValidateNewTask(Task t)方法中的Default.aspx.cs文件中完成,在该文件中我针对所有获取的条目运行foreach循环,如果出现“点击”,将用户重定向到错误页面,或者将其全部保存在同一页面上,并带有错误标签,因为它不是那么严重(就像RequiredFieldValidator那样),然后访问日志写入新的条目发生错误。

我是否遗漏了一些正好在我面前的东西,或者这是否曾经没有完成(像这样/或根本没有)?

1 个答案:

答案 0 :(得分:1)

您可以使用RAISERROR ... WITH LOG引发错误(用户将收到SqlException)并将其写入SQL Server日志文件,但这不是我建议的。 SQL Server日志文件适用于SQL Server,如果您的应用程序需要日志文件,我会创建独立且独立的内容。请注意MSDN文档中有关SA或使用ALTER TRACE来使用WITH LOG的注释。