您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

您将SQL语句放在c#项目的哪里?

您将SQL语句放在c#项目的哪里?

好吧,这里有很多选择-因此,这实际上取决于您最紧迫的需求是什么:-)

一种方法可能是在VS解决方案中将sql语句创建为文本文件,然后在“构建操作”中将它们标记为“嵌入式资源”。这样,sql将包含在结果程序集中,并且可以使用.NET框架的ResourceManifestStream在运行时从中检索该sql

private string LoadsqlStatement(string statementName)
{
    string sqlStatement = string.Empty;

    string namespacePart = "ConsoleApplication1";
    string resourceName = namespacePart + "." + statementName;

    using(Stream stm = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
    {
        if (stm != null)
        {
            sqlStatement = new StreamReader(stm).ReadToEnd();
        }
    }

    return sqlStatement;
}

您需要用sql语句文件所在的实际名称空间替换“ ConsoleApplication1”。您需要使用完全限定的名称来引用它们。然后,您可以使用以下行加载您的sql语句:

string MysqLStatement = LoadsqlStatement("MysqLStatement.sql");

但是,这会使查询变得“静态”,例如,您无法在运行时配置和更改查询- 它们直接烘焙到已编译的二进制位中。但另一方面,在VS中,您的C#程序代码sql语句之间有一个很好的清晰分隔。

如果您需要能够在运行时进行调整和更改,则可以将它们放在单个sql表中,该表包含例如关键字和实际的SQL查询作为字段。然后,您可以根据需要检索它们并执行它们。由于它们位于数据库表中,因此您甚至可以在运行时随意更改,修复或修改它们,而不必重新部署整个应用程序。

马克

SQLServer 2022/1/1 18:37:20 有476人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶