2014-12-06 97 views
0

我一直在爲Delphi開發相當長的一段時間,並且習慣了TADOStoredProc來處理存儲過程。 Embarcadero的Delphi IDE做了很多很棒的事情,比如自動獲取所有參數,爲StoredProc對象自動生成屬性以訪問返回類型。所有這些都發生在設計時。TADOStoredProc替代C#

我最近做了切換到C#和Visual Studio 2013,我沒有看到任何這些不錯的功能。我必須手動添加代碼中的所有參數並訪問返回數據,我必須使用DataRow對象。在Visual Studio(MS或第三方)中是否有像TADOStoredProc這樣的好功能?

目前,我正在做這個

SqlConnection sc = new SqlConnection(connectionString); 
SqlCommand com = new SqlCommand("StorePrc", sc); 
com.CommandType = System.Data.CommandType.StoredProcedure; 
com.Parameters.AddWithValue("@id", 1); 

using (SqlDataReader sdr = com.ExecuteReader()) 
{ 
    ... 
} 

在此先感謝

+0

我期望有一些東西,看起來C#是由編寫Delphi語言的同一個人編寫的:-) – 2014-12-06 22:40:00

+1

@Jerry Anders沒有設計所有圖書館。對於Delphi或C#。 – 2014-12-06 23:25:41

回答

0

花了很多時間在這之後,我得出的結論是這樣做的沒有不錯方式。您可以進行設置,以便您可以使用相同類型的對象獲得相同的結果,但這種方式很難維護,因此很難。這是我提出的建議。

  1. 首先創建您的存儲過程。用於插入,更新,刪除和選擇
  2. 請關注本文 - >http://msdn.microsoft.com/en-us/library/bb163707.aspx

在此步驟結束時,你應該從你選擇的存儲過程返回PARAMS和表適配器與Fill和GetData方法

  • 數據集在繼續之前點擊構建
  • 創建一個新窗體。在DataGridView,Dataset(剛剛創建的那個),TableAdapter(剛剛創建的一個),TableAdapterManager(剛創建的一個),BindingSource和ButtonNavigator上拖動(從工具箱中獲得),BindingSource和ButtonNavigator
  • 設置以下屬性屬性瀏覽器窗口

    • BindingSource的:數據源=數據集,數據成員=選擇存儲過程
    • TableAdapterManager:應該有正確的表適配器
    • 的DataGridView的引用:DataSoruce = BindingSource的
    • ButtonNavigator:DataSource = bindingSource
  • 網格應自動生成數據集中的列。 (Franlky自動生成列是完全沒用的,我會建議您打開該功能關閉,這樣做你自己)

  • 要刷新你需要做的

    tableAdapter.Fill(數據集中的數據,...選擇存儲proc params ...);

  • 要保存在你需要做

    tableAdapterManager電網的變化。UpdateAll(數據集);

  • 這與我在Delphi中如何使用它完全不同。在某些方面,它更好,在某些方面更糟糕;這正是你必須處理的。我希望這可以幫助未來的某個人(可能是我)