Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文件管理_C#_Sql Server_Database_Dms - Fatal编程技术网

C# 文件管理

C# 文件管理,c#,sql-server,database,dms,C#,Sql Server,Database,Dms,我正在为我的工作编写一个简单的文档管理系统。我只是一个业余爱好者,但已经编程一段时间了。我的问题是这个。当我通过我的应用程序删除一些文档时,我需要删除相关的数据库记录。如果抛出异常,最好的方法是什么,而不会导致没有数据库记录的文件,或者指向不存在的文件的记录?这是一种“分布式事务”系统。您可能希望编写一个整合例程并偶尔运行一次,但在某些时候会出现不一致。这是一种“分布式事务”系统。您可能希望编写一个整合例程并偶尔运行一次,但在某些时候会出现不一致。首先删除数据库记录,偶尔审核存储库。通过审计存储

我正在为我的工作编写一个简单的文档管理系统。我只是一个业余爱好者,但已经编程一段时间了。我的问题是这个。当我通过我的应用程序删除一些文档时,我需要删除相关的数据库记录。如果抛出异常,最好的方法是什么,而不会导致没有数据库记录的文件,或者指向不存在的文件的记录?

这是一种“分布式事务”系统。您可能希望编写一个整合例程并偶尔运行一次,但在某些时候会出现不一致。

这是一种“分布式事务”系统。您可能希望编写一个整合例程并偶尔运行一次,但在某些时候会出现不一致。

首先删除数据库记录,偶尔审核存储库。通过审计存储库,我的意思是查找没有数据库记录的文件。如果先删除DB记录,代码将不会查找实际上不存在的文档


您计划存储多少文档以及什么类型的文档?

首先删除数据库记录,偶尔审核存储库。通过审计存储库,我的意思是查找没有数据库记录的文件。如果先删除DB记录,代码将不会查找实际上不存在的文档


您计划存储多少文档以及什么类型的文档?

您应该使用分布式事务,其中包括数据库和MS消息队列(MSMQ)。使用Microsoft分布式事务协调器(DTC)检查您的数据库是否可以注册到分布式事务中

使用MSMQ编程所有文件操作


这可能有助于您使用分布式事务,其中包括数据库和MS消息队列(MSMQ)。使用Microsoft分布式事务协调器(DTC)检查您的数据库是否可以注册到分布式事务中

使用MSMQ编程所有文件操作

这可能会帮助你

你说的“通过我的应用程序”。这是否意味着他们只能通过应用程序界面删除文件?如果是这样,请在自定义事务中包装删除操作,以同时删除文件和数据库记录。如果一方失败,则回滚另一方

如果你想让他们从文件目录中删除文件,然后自动删除db记录,你可以做很多事情,包括定期清理和/或使用文件目录监视程序Windows服务来监视目录中的活动,然后开始清理。

你说的“通过我的应用”。这是否意味着他们只能通过应用程序界面删除文件?如果是这样,请在自定义事务中包装删除操作,以同时删除文件和数据库记录。如果一方失败,则回滚另一方


如果您想让他们从文件目录中删除文件,然后自动删除db记录,您可以做很多事情,包括定期清理和/或文件目录监视程序Windows服务,该服务监视目录中的活动,然后启动清理。

我的一些应用程序中也有类似的功能

我要做的是首先通过ap删除该文件,然后删除具有指向该文件的链接/指针的数据库记录。当用户请求一个文档(这意味着数据库中仍然存在指向该文件的链接)时,应用程序会首先检查该文件,如果由于某种原因该文件不在其预期的位置,则会在此时清理数据库记录,并优雅地通知用户“错误”

“孤立”文档不会发生太多,但使用此方法可以确保数据库作为运行应用程序的正常部分不断清理


有很多其他的方法来处理这个问题,但是这个方法对我很有效。

我的一些应用程序也有类似的功能

我要做的是首先通过ap删除该文件,然后删除具有指向该文件的链接/指针的数据库记录。当用户请求一个文档(这意味着数据库中仍然存在指向该文件的链接)时,应用程序会首先检查该文件,如果由于某种原因该文件不在其预期的位置,则会在此时清理数据库记录,并优雅地通知用户“错误”

“孤立”文档不会发生太多,但使用此方法可以确保数据库作为运行应用程序的正常部分不断清理


有很多其他的方法来处理这个问题,但是这个方法对我来说很有效。

将文件存储在数据库中。这样,您就可以在不增加应用程序复杂性(MSMQ等)的情况下获得引用完整性。是的,这将增加数据库的大小。但是文件已经在你的服务器上了,所以它只是在不同的地方的相同的位

将文件存储在数据库中。这样,您就可以在不增加应用程序复杂性(MSMQ等)的情况下获得引用完整性。是的,这将增加数据库的大小。但是文件已经在你的服务器上了,所以它只是在不同的地方的相同的位

感谢您的回复。我已经考虑过要走“一团一团”的路线,但不确定我的老板是否会同意。他喜欢一个好的目录结构,你知道吗?至于分布式事务,我对它们一无所知,但它们似乎是最专业的处理方式。但我是一个业余爱好者,这一切似乎都太复杂了,所以我要赢得我的老板对这一点的支持。干杯

感谢您的回复。我已经考虑过要走“一团一团”的路线,但不确定我的老板是否会同意。他喜欢一个好的目录结构,你知道吗?至于分布式事务,我对它们一无所知,但它们似乎是最专业的处理方式。但我是一个业余爱好者,这一切似乎都太复杂了,所以我要赢得我的老板对这一点的支持。干杯

是的