在c#程序外存储查询的最佳方式
本文关键字:最佳 方式 查询 存储 程序 | 更新日期: 2023-09-27 18:06:52
我有一些连接字符串和查询,我需要存储在我的c#程序之外(不能硬编码它们)。现在我正在使用Visual Studio的应用程序配置文件。不幸的是,这些查询需要我的程序中的变量(由用户在运行时选择)才能运行。
我目前的解决方法是在配置文件中将查询分解成多个部分,然后在程序中重新组装它们。我宁愿避免这种情况,因为这使得很难从配置文件中读取查询。有人有更优雅的解决方案吗?
接受参数的服务器上的存储过程是我的首选。这可以很好地保护您免受sql注入(除非您不正确地构造它们),并且是普遍接受的最佳实践。
否则,使用参数化查询。它们可以存储在配置文件中。(但如果您继续在纯文本配置文件中存储敏感数据,如连接字符串和有用的东西,如可操作的查询,我肯定会加密.config文件。)
一种常见的方法是使用占位符并在运行时替换它们。
如果必须从程序中取出字符串,并且不能使用存储过程,最简单的方法是存储带有参数的字符串,如下所示:
select * from Country where city = @City"
加载这个字符串并在查询中添加一个参数。总是在生成查询时使用参数。
这是一个简单,直接和更多的SQL原生方法,在我的脑海里,现在在你的情况下。