2013-06-20 33 views
1

我會用「sql server service broker」做一個項目。我從來沒有使用它,但嘗試從微軟網站的教程,我想我有這個想法。現在,我可以爲數據庫中的服務代理創建所有必需的元素。但我的問題是,你如何使用C#中的服務代理。我想添加消息從隊列從C#和從C#讀取?用c訪問服務代理隊列#

我讀,我可以用老式的SQL訪問隊列表像下面

select columns from SchemaName.QueueName WITH(NOLOCK); 

但我不認爲這是正確的方式。我怎麼能在c#中正確地做到這一點?請給我一個線索

回答

3

根據BOL,只有服務代理可以添加到隊列:

服務代理管理的更新隊列。雖然可以使用隊列名稱 代替SELECT語句中的表名,但隊列 不能是INSERT,UPDATE,DELETE或TRUNCATE語句的目標。

可以使用ADO淨

看看這裏運行正常查詢隊列:http://msdn.microsoft.com/en-us/library/ms166127%28v=sql.100%29.aspx

+0

這就是很好的瞭解,但你如何在項目中使用它?我可以添加一條消息來排隊,並使用服務代理命令從sql server managemanet studio的隊列中讀取消息。但你怎麼做在C# –

+1

嘗試在SQL中創建一個存儲過程,然後從C#調用該過程。此鏈接顯示瞭如何:http://msdn.microsoft.com/en-us/library/59x02y99%28v=vs.100%29.aspx – Dustin

+0

-1:否。所有隊列操作都可以使用T-SQL擴展來執行SQL 2005上。因此,任何能夠在SQL上運行命令的語言/ API/SDK都可以與Service Broker配合使用。網絡上有很多這樣的例子,甚至在這裏也是如此。例如:http://stackoverflow.com/questions/2089184/net-api-for-sql-service-broker –