c#在SQL CE查询(使用WebMatrix)中返回什么数据类型?

本文关键字:返回 什么 数据类型 WebMatrix 使用 SQL CE 查询 | 更新日期: 2023-09-27 18:15:39

我花了一些时间谷歌和一些时间研究这里:http://msdn.microsoft.com/

然而,我似乎找不到一个简单的答案:

当我从数据库(如下所示)返回一些数据时,向以下row变量返回什么c#数据类型:

selectQueryString = "SELECT * FROM ContentObjects INNER JOIN TitleObjects ON ContentObjects.ObjectID = TitleObjects.ObjectID WHERE location='home' AND type = 'title' AND TitleObjects.ObjectID = @0";
row = db.QuerySingle(subSelectQueryString, someNumber);

我问,因为我需要在页面的开头声明row,在我使用它之前,但它必须被初始化,我似乎不能在不知道数据类型的情况下这样做。

更新:

BTW, var db = Database.Open("tableName")

c#在SQL CE查询(使用WebMatrix)中返回什么数据类型?

queryssingle方法返回dynamic类型(参见http://msdn.microsoft.com/en-us/library/dd264736.aspx)。模式中的字段名成为动态对象的属性。编译器(或者在dynamic的情况下,运行时绑定器)只会认为你试图调用一个方法,如果你在属性后面加上括号,例如

@row.linktext()

除非您显式定义行对象,否则它将基于SQL Server类型的列。您必须知道SQL Server中ContectObjects表的定义

返回dynamic数据类型

dynamic是c# 4.0中的一个新数据类型。它只是一个在运行时处理的数据类型。动态计算编译后对象的数据类型,例如

selectQueryString = "SELECT * FROM ContentObjects INNER JOIN TitleObjects ON ContentObjects.ObjectID = TitleObjects.ObjectID WHERE location='home' AND type = 'title' AND TitleObjects.ObjectID = @0";
row = db.QuerySingle(subSelectQueryString, someNumber);
var the_field_content = row.location;

如果你的查询方法是db.Query,它将返回一个IEnumerable<object>,这给了你使用LINQ方法或对象方法(如row.Length;row.Skip(5).Take(2).Select(row);)进行更深入挖掘的额外优势

尝试将变量row声明为var,在visual studio中点击它的断点并将鼠标悬停在它上面。数据类型会显示出来。这是dynamic