[英]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.