簡體   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