2011-05-16 63 views
1

我有一個工作進程,位於Web應用程序後面,它在表中生成一些記錄,這非常普遍,我實際上必須在表中將SQL(where子句)添加爲Data。從SQL到C#的轉換

它看起來是這樣的(不介意引號):

SET @sql = '(((1.00 < col_a) 
    AND (col_a < 5.00))) 
    AND NOT LEFT(col_b, 4) IN ('something') 
    OR (CHARINDEX('cucu', col_c) > 0) 
    AND NOT ISNULL(col_d, '') <> '' 
    AND ((1.00 < CONVERT(FLOAT, col_e)) 
    AND (CONVERT(FLOAT, col_f)< 5.00)) 
    AND NOT col_g IN ('10') ' 

它的工作原理沒事,沒有怨言,但客戶希望有一個在代碼的方式,我不是真的確定爲什麼。 因此,不是使用預定的SQL作業,而是運行我的存儲過程,我想我會在C#桌面應用程序中以某種方式重建所有這些,這也是做同樣的事情。

我想知道是否有方法讓我使用我的代碼(比如上面的我的@sql示例)以某種方式從C#中使用。我的意思是某種編譯或其他任何東西。

我以爲我只是選擇一個DataTable中的結果,然後以某種方式在該DataTable上應用我的@sql。我想用where子句縮小原始DataTable的結果。

如果我不這樣做,恐怕我將不得不更改整個存儲過程(@sql),這會使任務更大。

我正在使用SQL 2k5,客戶端有sql 2k8(我們將很快升級)以及我將在C#中構建的桌面應用程序。

+2

看看微軟O/RM工具的LINQ to SQL和Entity Framework。它們允許您使用嵌入到C#語言(稱爲LINQ)中的查詢語法與數據庫交談。這是非常強大的,並在非常可維護的代碼結果。 – Steven 2011-05-16 13:58:27

回答