PIXNET Logo登入

丫烈客

跳到主文

部落格全站分類:

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 2月 23 週四 200621:08
  • C# 2.0 的 nullable 型別




 

在 1.1 中  

 

int i = null ;  是無法編譯的
C# 2.0 新增一種型別叫 Nullable 可以允許將 int 設為 null

 

int? i =null ; <----- 這個是可以成功編譯的

當然 套用在 DateTime 或者 bool 一樣可以

 

另外 C# 2.0為了讓Nullable型別和non-Nullable 之間做轉換,提供了一個新的表示法"??" 

範例如下
 int? a = 1;
 int? b = null;
 int c = a; //  無法 compile
 int c = a ?? 100; // 正確
 int d = a + b; //  無法 compile
 int d = a + b ?? -1; // 正確
(繼續閱讀...)
文章標籤

丫烈客 發表在 痞客邦 留言(0) 人氣(86)

  • 個人分類:
▲top
  • 10月 28 週五 200510:01
  • SQL SERVER 2005 新語法-神奇的WITH

Common Table Expression 神奇的WITH()
在語法中可以用 WITH() 模擬成一個TABLE給另一段語法查詢
---------------------------------------------------------------------------------------------------
WITH TopSales (SalesID,numsales) AS
( select persionid,count(*) from salses group by persionID)
select * from TopSales where SalesID is not null
order by numsales
---------------------------------------------------------------------------------------------------

如果只是這樣會覺這有什麼好神奇的
 
但是如果撘配其他新的語法可以做到遞迴、分頁查詢等許多之前做不到的功能
遞迴範例
假設我有一個TABLE 是GROUUP 裡面有3個欄位
GroupID,ParentGroupID,groupName
0  null  Root
1  0   sub1
2  1   sub11
3  0   sub2
4  2   sub21
 
 語法如下:
---------------------------------------------------------------------------------------------------
With org AS
(select groupName,groupID ,1 as Level from group
where ParentGroupID is null
UNION ALL
select groupName,groupID , org.Level +1 as Level
from group
INNER JOIN org ON group.ParentGroupID= org .groupID
)
seelct * from org order by Level
--------------------------------------------------------------------------------------------------- 
上面的語法可以一次把所有GROUP以樹狀的方式一次列出來
結果如下
GroupID,groupName,Level
0  Root    1
1  sub1    2
3  sub2    2
2  sub11  3
4  sub21  3
 
 
下一集[如何用 WITH 來達成資料分頁的效果]
----------------------- To be continue -------------------------------
(繼續閱讀...)
文章標籤

丫烈客 發表在 痞客邦 留言(1) 人氣(254)

  • 個人分類:
▲top
  • 10月 19 週三 200514:19
  • SQL 語法 的 WITH TIES

今天有 5個業務 10月份的業績是
甲:15萬
乙:20萬


丙:30萬


丁:10萬


戊:15萬

老闆要找出業績前3名的業務

一般直覺的想法是

 

select top 3 業務名稱,金額 from 業績 order by 金額 desc

會得到

丙 30

乙 20

甲 15

也有可能會得到


丙 30

乙 20

戊 15

 

 

但是今天有可能有n個第3名

所以用 top 3 應該不符合需求

 

如果改用


select top 3 WITH TIES  業務名稱,金額 from 業績 order by 金額 desc

會得到4筆資料


丙 30

乙 20

戊 15

甲 15

 

WITH TIES 就是用在這個時候 ,需撘配 TOP n 還有 ORDER BY

會讓 ORDER BY 最後一筆的結果一樣的DATA也出來

 

以上面的例子

因為 ORDER BY 金額  desc

所以最後一筆 是15 ,所以金額=15的也都會出現

而產生 top 3 但是會有 4筆資料的結果
(繼續閱讀...)
文章標籤

丫烈客 發表在 痞客邦 留言(4) 人氣(4,493)

  • 個人分類:
▲top
  • 10月 19 週三 200514:02
  • SQL 語法 的 EXISTS

當我們要找出 A TABLE 的DATA 存在於 B TABLE 的資料 時
當A TABLE的KEY 只有 一個時通常都會
select * form A where APKColumn in (select APKColumn from B )
 
但是如果 A TABLE 的KEY 有兩個的時候就很難用上面的語法來找出來
這時候 EXISTS 就派上用場
 
select * from A
where exists (select * from B where B.APKColumn1 =A.APKColumn1 AND B.APKColumn2 =A.APKColumn2 )

 
 
(繼續閱讀...)
文章標籤

丫烈客 發表在 痞客邦 留言(1) 人氣(1,516)

  • 個人分類:
▲top
  • 10月 04 週二 200518:29
  • ASP.NET 的檔案下載

解決了檔案上傳的問題,接著來的是檔案下載
 
ASP.NET 如果檔案太大時,會佔用很多的記憶體,甚至會掛掉,或者在 下載時沒有發生錯誤,但是在完成後確 發生 The page cannot be displayed  之類的錯誤
 
參考作法 來自 Optimizing the Downloading of Large Files in ASP.NET
 

using( Stream s = new FileStream( fileName, FileMode.Open,


FileAccess.Read, FileShare.Read, bufferSize ) )


{


byte[] buffer = new byte[bufferSize];


      int count = 0;


      int offset = 0;


      while( (count = s.Read( buffer, offset, buffer.Length ) ) > 0 )


      {


            ctx.Response.OutputStream.Write( buffer, offset, count );


      }


}


或者  Microsoft 的KB http://support.microsoft.com/kb/812406/EN-US/
不過也有可能是 BUG (已經在 .Net Framework 1.1 SP1 中修覆)
http://support.microsoft.com/kb/823409/EN-US/
 
 
(繼續閱讀...)
文章標籤

丫烈客 發表在 痞客邦 留言(6) 人氣(432)

  • 個人分類:
▲top
  • 10月 04 週二 200517:05
  • ASP.NET 的檔案上傳

ASP.NET 的檔案上傳...一直是一個頭痛的問題
本在WEB.CONFIG裡 可以透過 httpRuntime 來設定檔案的大小
<httpRuntime maxRequestLength="14096" />
 
但是很討厭的是 當檔案太大時 有時候在CLIENT 端就會掛掉了,根本還來不及傳回到 SERVER端
所以要靠一些特殊的手段來解決 像是 HttpWorkerRequest
 
不過現在已經有元件可以解決了
SlickUpload http://assistedsolutions.com/components/SlickUpload/
AspnetUpload http://www.cnblogs.com/bestcomy
(繼續閱讀...)
文章標籤

丫烈客 發表在 痞客邦 留言(0) 人氣(159)

  • 個人分類:
▲top
  • 9月 22 週四 200516:56
  • 專案管理的 IPECO

What is IPECO ?
 
I: Initial 起案
 
P:Plan 計劃
 
E:Execute 執行
 
C:Control 控制
 
O:closeOut 結案 (不是Out Control 唷!!)
(繼續閱讀...)
文章標籤

丫烈客 發表在 痞客邦 留言(3) 人氣(47)

  • 個人分類:
▲top
  • 9月 22 週四 200510:51
  • C# 的 Using

記得在某次教育訓練時,講師有提到
SQL connection 的處理 一般人都不會注意 connection 會因為程式錯誤而造成沒有close 的問題
當時建議
用 try finally 來解決.
 
try{
    connection.open();
}
finally
{
    connection.close();
}
 
現在發現更簡單的語法, 用 using 也可以達成同樣的效果
 using (SqlConnection connection = new SqlConnection(connectionString))
   {
      connection.open();
 
 
   }
 
底下說明來自MSDN
 
C# 程式語言的 using 陳述式會藉由簡化您必須為建立和清除物件而撰寫的程式碼,以較為自動的方式呼叫 Dispose 方法。Using 陳述式會取得一項或多項資源、執行您指定的陳述式,然後處置該物件。請注意,using 陳述式對於物件之存留期不超過建構該物件之方法的物件才有用。下列程式碼範例會建立並清除 ResourceWrapper 類別的執行個體,一如之前在 C# 實作 Dispose 方法範例中所提供的說明。
class myApp
{
   public static void Main()
   {
      using (ResourceWrapper r1 = new ResourceWrapper())
      {
         // Do something with the object.
         r1.DoSomething();
      }
   }
}
前面含有 using 陳述式的程式碼,就相當於下列情形。
class myApp
{
   public static void Main()
   {
      ResourceWrapper r1 = new ResourceWrapper();
      try
      {
         // Do something with the object.
         r1.DoSomething();
      }
      finally
      {
         // Check for a null resource.
         if (r1 != null)
         // Call the object's Dispose method.
         r1.Dispose();
      }
   }
}
(繼續閱讀...)
文章標籤

丫烈客 發表在 痞客邦 留言(0) 人氣(6,544)

  • 個人分類:C#
▲top
«1...45

熱門文章

  • (6,939)系統禁止此安裝,請聯絡系統管理員
  • (4,493)SQL 語法 的 WITH TIES
  • (6,544)C# 的 Using
  • (16,337)基本IP概念

文章分類

  • Docker (1)
  • Code First (1)
  • WebAPI (1)
  • CSS (1)
  • jQuery (1)
  • Network (1)
  • Window Form (1)
  • SQL Script (2)
  • SQL 2005 (6)
  • ASP.NET (3)
  • troubleshooting (3)
  • C# (9)
  • Visual Studio 2010 (4)
  • 未分類文章 (1)

最新文章

  • 設定 Nexus Repository OSS 3.X for Windows 啟用HTTPS(使用自我簽署憑證)
  • Entity Framework 5 Code First models migration 心得
  • ASP.NET 4.5 WebAPI 之 Action 的選擇
  • CSS 選擇器(Selector)
  • Sql 語法的TOP使用變數
  • ScriptManager 、 ClientScriptManager
  • $(document).ready() 、 Sys.Application.add_load()
  • 基本IP概念
  • C# Tip: 取得某日的最後一秒
  • C# Tips: TimeSpan 的 TotalDays

文章精選

文章搜尋

誰來我家

參觀人氣

  • 本日人氣:
  • 累積人氣: