c# - SQL数据库中如何使用SELECT+参数+FROM?
问题描述
我想知道是否可以创建这样的查询:
SELECT :parameterA, :paramaterB
FROM *someTable*;
这个想法是使用类似的结构而不是制作某种字符串或类似的东西。
我正在使用 SQL 数据库和 Visual Studio 2019 中的 C# 项目。
到目前为止,我有这个代码:
public List<V_Requerimientos> GetData(int idEmpresa, string columns)
{
List<V_Requerimientos> result = null;
try
{
var dyParam = new OracleDynamicParameters();
dyParam.Add("idEmpresa", OracleDbType.Int32, ParameterDirection.Input, value: idEmpresa);
var conn = this.GetConnection();
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
if (conn.State == ConnectionState.Open)
{
string query = "SELECT " + columns + "FROM V_REQUERIMIENTOS " +
"WHERE EMPR_CODIGO = :idEmpresa AND ETAR_CODIGO <> 4";
result= conn.Query<V_Requerimientos>(query, dyParam).ToList();
conn.Close();
}
}
catch (Exception e)
{
throw e;
}
return result;
}
其中idEmpresa
是前面选择的对象的 PK,columns 是一个字符串,其中包含我要为该对象选择的列。
我想知道是否无论如何都可以替换发送到该方法的参数的列,而不是像我目前使用的那样使用串联查询。
解决方案
SQL 参数用于在 where 子句中指定值。您不会对列名使用参数。您的查询应该看起来更像这样。
string colA = "Customer Id";
string colB = "Customer Name";
string sql = $"Select [{colA}], [{colB}] from table";
推荐阅读
- java - HAPI FHIR 检索患者
- gdb - 进程的 GDB 全内存转储
- python - 如何在 C# 和 python 应用程序之间建立快速通信?
- python - 无法将参数从列表传递给脚本
- hl7-fhir - 有没有办法生成综合患者数据,然后通过 fhir 模式公开它?
- html - Flask:动态路由导致 render_template 忽略 (jinjer2) html-formatting
- fastreport - Fastreport 在 Getit Delphi 中不起作用
- r - 使用一个数据帧中的系数(斜率和截距)来计算第二个数据帧中的值列表
- javascript - 使用 JSON 数据迭代表
- node.js - 如何使用 EJS 链接 Express 中公共目录以外的文件?