我有一种方法可以从用 C# 为 SQL Server 编写的文件中删除字符串:
[SqlProcedure]
public static void fileReplace(string path, string patternToReplace, string stringForReplace)
{
using (SqlConnection connection = new SqlConnection("context connection=true"))
{
connection.Open();
try
{
File.WriteAllText(path, Regex.Replace(File.ReadAllText(path), patternToReplace, stringForReplace));
}
catch (Exception e)
{
}
}
}
SQL Server 中的程序集和过程是这样创建的:
CREATE ASSEMBLY FileUtils
FROM '<path>\<name>.dll'
WITH PERMISSION_SET = EXTERNAL_ACCESS
GO
CREATE PROCEDURE fileReplace (
@path nvarchar(max)
, @patterToReplace nvarchar(max)
, @stringForReplace nvarchar(max)
)
AS EXTERNAL NAME FileUtils.FileUtils.fileReplace;
GO
C# 中的方法工作正常,但是当我从 SQL Server 调用它时,什么也没有发生(文件没有改变)。怎么了?