繁体   English   中英

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

[英]What data type does C# return in a SQL CE query (using WebMatrix)?

我花了一些时间在Google上搜索,并在这里进行了一些研究: http : //msdn.microsoft.com/

但是,我似乎找不到这个问题的简单答案:

当我从数据库中返回某些数据时,将哪种C#数据类型返回到以下row变量,如下所示:

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 ,但是必须对其进行初始化,而且在不知道数据类型的情况下我似乎无法做到这一点。

更新:

顺便说一句, var db = Database.Open("tableName")

QuerySingle方法返回dynamic类型(请参阅http://msdn.microsoft.com/zh-cn/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.Length; row.Skip(5).Take(2).Select(row);

尝试将变量行声明为var,在Visual Studio中命中一个断点,然后将鼠标悬停在该行上。 数据类型将显示出来。它是dynamic

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM