gpt4 book ai didi

c# - 使用 SQL 过程替换文件中的字符串

转载 作者:行者123 更新时间:2023-11-30 17:09:28 24 4
gpt4 key购买 nike

我有一个方法可以从用 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 调用它时,没有任何反应(文件没有改变)。怎么了?

最佳答案

您的 SQLServer 登录名需要具有对该文件的权限。有可能当它尝试读/写文件时失败并出现异常,但异常被 try catch

抑制了

关于c# - 使用 SQL 过程替换文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12951638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com