【发布时间】:2010-06-16 18:55:37
【问题描述】:
这是否可以从 C# 代码执行视图。如果是,那么我想知道参数化视图是否存在以及我应该如何使用它们。参数化意味着我们在存储过程中使用相同的参数来说明 where 条件。
【问题讨论】:
这是否可以从 C# 代码执行视图。如果是,那么我想知道参数化视图是否存在以及我应该如何使用它们。参数化意味着我们在存储过程中使用相同的参数来说明 where 条件。
【问题讨论】:
不执行视图。一个执行查询。如果查询从视图或表中选择行,ADO.NET 不知道也不关心。
【讨论】:
您对待视图的方式与对待表格的方式相同(即用于选择)。
在FROM 子句中使用表的参数化查询同样适用于视图。
不要将视图与存储过程混淆 - 存储过程被执行,视图只是被执行。您使用SELECT 语句通过查询从视图中读取数据。
【讨论】:
将 veiw 视为直接 SQL,其中视图名称替换表名称:即 从 v_employee_department 中选择 *...vs...从员工中选择 * 其中 v_employee_edpartment 是连接员工表和部门表的视图
// Declare connection string.
string connStr = Properties.Settings.Default.ConnectionString;
OracleConnection cn = new OracleConnection(connStr);
// STEP 1: Execute command
string selectCommandTotal = "SELECT ID FROM <SOME_VIEW> WHERE <SOME_FIELD> = <SOME_VALUE> ";
OracleCommand cmdGetTotals = new OracleCommand(selectCommandTotal, cn);
cmdGetTotals.Connection.Open();
OracleDataReader rdrGetTotals = cmdGetTotals.ExecuteReader();
【讨论】: