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

皮埃尔·A

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

我的项目结构

现在,我陷入了如何从相对路径读取脚本的问题?

这是我尝试失败的尝试:

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代码作为嵌入式资源添加文件:

在此处输入图片说明

并使用以下函数从文件获取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();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章