2010-06-16 26 views
2

是否可以从C#代码执行视图。如果是的话,我想知道参数化视图是否存在,我应该如何使用它们。参数化意味着我们在存储过程中使用相同的参数来说明条件。从ADO.NET执行T-Sql视图

回答

8

一个不执行视图。一个执行查询。如果查询从视图或表中选择行,则ADO.NET不知道或不在意。

+0

谢谢我明白了。我有点困惑。视图充当一个虚拟表,我们可以根据适当的条件创建sp或查询。 – 2010-06-16 19:07:30

2

您对待视图的方式与处理表的方式相同(即选择)。

使用FROM子句中的表的参数化查询对于视图来说也同样适用。

不要将视图与存储过程混淆 - 存储过程被执行,视图很简单。您使用SELECT语句通过查询从视图中读取数据。

1

觉得教职员直SQL在视图名称代替表名:即 SELECT * FROM v_employee_department ... ... VS SELECT * FROM员工 其中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();