gpt4 book ai didi

c# - 读取嵌入到 .NET 程序集中的数据

转载 作者:太空狗 更新时间:2023-10-30 00:29:50 26 4
gpt4 key购买 nike

对于一个学校项目,我不允许使用存储过程来存储我的 SQL 脚本。为了解决这个问题,我尝试在我的类程序集中创建一个 SQL_scripts 文件夹。

My project structure

现在我卡在如何从相对路径读取我的脚本上了?

这是我尝试过但没有成功的方法:

var appDomain = System.AppDomain.CurrentDomain;
var basePath = appDomain.RelativeSearchPath ?? appDomain.BaseDirectory;
string path = Path.Combine(basePath, "SQL_scriptes", "GetAllEmptyRoomsAtDateRange.sql");
string query = File.ReadAllText(path);

但我总是在以下文件夹中:

  • MyProject\Tests\bin\Debug\SQL_scriptes\GetAllEmptyRoomsAtDateRange.sql

有什么想法吗?

最佳答案

您应该将带有 sql 代码的文件添加为嵌入式资源:

enter image description here

然后使用下面的函数从文件中获取SQL:

public string GetScript(string scriptName)
{
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "Q46868043.SQL_scripts." + scriptName;

using (Stream stream = assembly.GetManifestResourceStream(resourceName))
using (StreamReader reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}

关于c# - 读取嵌入到 .NET 程序集中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46868043/

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