【发布时间】:2013-03-05 14:11:27
【问题描述】:
我们看到 System.Data.CommandType 只有 3 个枚举:“StoredProcedure”、“TableDirect”和“Text”。为什么我们不将“查看”视为一个选项? Microsoft 不提供此选项的特定框架原因是什么?
我在这里专门讨论 SQL Server 视图。
我们将非常感谢您的回答。
【问题讨论】:
我们看到 System.Data.CommandType 只有 3 个枚举:“StoredProcedure”、“TableDirect”和“Text”。为什么我们不将“查看”视为一个选项? Microsoft 不提供此选项的特定框架原因是什么?
我在这里专门讨论 SQL Server 视图。
我们将非常感谢您的回答。
【问题讨论】:
因为View 可以通过TableDirect 或Text 访问。无论如何,最常见的访问是Text,因为您通常会这样做:
DataTable dt = new DataTable();
using (SqlConnection c = new SqlConnection(cString))
{
using (SqlDataAdapter sda = new SqlDataAdapter(sql, c))
{
sda.SelectCommand.Parameters.Add("parm1", value1);
c.Open();
sda.Fill(dt);
}
}
最后,视图实际上在 SQL Server 中表示为表。它有一个真正的表定义,只是碰巧是用查询构建的。
【讨论】:
大多数时候 View 不是单独使用的,而是作为查询或 SP 的一部分。因此,没有必要提供专用的 CommandType。函数也是如此——没有 CommandType.Function。
【讨论】: