今天碰到一個耗時例外的問題
從MSSQL讀取1000條記錄,在分析查詢器那里測驗,不到一秒就出結果了
但在C#了,將每條記錄轉為
-----------------
foreach (DataRow rs in dt.Rows)
{
ii++;
JObject jOb= new JObject();
jOb.Add(new JProperty("SourceID", rs["SourceID"]));
jOb.Add(new JProperty("RoomNum", rs["RoomNum"]));
。。。 。。。
----------------
竟用了好久,然后我再將jOb這個物件轉為字串jobj.ToString(),發現這個用時更久,不知什么原因,
說明下,job每條記錄是這樣的
{
"SourceID": 8243,
"RoomNum": "0202",
"SourceTag": "\u9614\u7ef0\u4e09\u623f,\u5357\u5317\u901a\u900f,\u5165\u6237\u82b1\u56ed",
"housetypes": "3\u623f2\u5385",
"CoveredArea": 119.68,
"Floors": 2,
"SourceImg": "house/2020_4/30/s_20200430085521VTL000.jpg",
"oneprice": 6161.0,
"totprice": 737348.5,
"IsOnline": true,
"IsSold": false,
"HouseTypeID": 97
},共有981條,存為文本的話是379K,但除錯時出結果耗時幾分鐘,是哪里出問題了呢,請高人指點,萬分感謝!
uj5u.com熱心網友回復:
你是要 datatable 轉json嗎? 直接就轉了 ,別轉成JObject 了參考微軟的Newtonsoft.Json;
JsonConvert.SerializeObject(ds) 就是json包了。 而且你的寫法有問題, 為什么
JObject jOb= new JObject();
jOb.Add(new JProperty("SourceID", rs["SourceID"]));
jOb.Add(new JProperty("RoomNum", rs["RoomNum"]));
不是應該創建一個 list<JObject > a= new list<JObject >
JObject 創建個物體類
然后
for()
{
JObject b =new JObject ();
b.lie=zhi;
a.add(b);
}
你多還幾個寫法 就知道實際浪費在哪里了
uj5u.com熱心網友回復:
這玩意自己拼接自己控制,別人封裝的屬于大眾化的,不一定適合你自己呢uj5u.com熱心網友回復:
你在查詢分析器數過它詳細列出來確實是將近1000行了嗎?uj5u.com熱心網友回復:
基本上,就算是100萬行,查詢分析器告訴“秒告訴”你有100萬行查詢結果,然后當你序列化到 asp.net 控制元件也得幾十分鐘吧?!不需要看就不要弄到客戶端,如果 html 能看的就不要弄什么 DataGrid,記憶體物件保存資料就可以的既不要弄什么 asp.net 控制元件,強型別高級物件可以的就不用使用低級的字串去組織 JObject。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/228189.html
標籤:ASP.NET
