1

比方說,我有一個程序集,其中安裝了一個方法does_stuff(),我已經安裝在SQL服務器數據庫中。我希望此方法/ storedproc引用數據庫中特定的已知表。如何獲得does_stuff訪問表的內容而不知道其本身託管的位置如何從安裝在該數據庫中的程序集中一般引用SQL Server數據庫中的本地表?

假設does_stuff應該訪問表info_config。 如果它在數據庫ALPHA主辦,它將訪問ALPHA.info_config 如果它是在數據庫BETA主辦,它將訪問BETA.info_config

我知道如何打開數據庫連接等與ADO.NET,但那些需要特定的服務器和數據庫字符串。我需要靈活性,以便無論託管在什麼地方,程序集都會執行相同的操作。

谷歌搜索沒有給我任何東西。

在此先感謝

回答

0

所有你需要做的就是使用context connection

目前它可能看起來並不明顯,但CLR代碼總是在一些上下文中執行。總是有直接或在某些父範圍執行的代碼的東西(人)(存儲過程調用CLR函數,在插入等CLR觸發火災)。當程序執行到達上下文連接時,它只需要該範圍的連接參數(服務器,數據庫,SET選項等)。

I want this method/storedproc to refer to a specific known table in the database. 

上下文連接開放後,要查詢數據庫如常。

using (SqlConnection conn = new SqlConnection("context connection=true")) 
{ 
    conn.Open(); 
    SqlCommand cmd = new SqlCommand("SELECT * FROM MyTable"); 
    SqlContext.Pipe.ExecuteAndSend(cmd); 
} 
+0

謝謝,這就是我要找的! 我已經接受,但不能upvote你呢。 –

+0

Np,很高興你解決了它。 – OzrenTkalcecKrznaric

相關問題