回答
請參閱The C# Station ADO.NET Tutorial - Lesson 07: Using Stored Procedures:
本課說明如何在數據訪問代碼使用存儲過程 。 以下是本 節課的目標:
- 瞭解如何修改SqlCommand對象使用存儲過程 。
- 瞭解如何在存儲過程中使用參數。
@Andrew Hare,我知道存儲過程的正常執行。 我想知道,如何從Web服務調用和執行sp。 這是什麼Web服務的卷。怎麼做 ? – Anuya 2009-09-29 04:07:22
+1這是一個很好的通過存儲過程訪問ADO.NET的教程。有沒有人知道Web服務在ADO.NET中的作用同樣好? – 2009-09-29 04:07:28
@karthik,我想你無論如何都會需要這個。 – 2009-09-29 04:08:38
如果重新開始,我會強烈建議你開始使用WCF(而不是舊式ASMX Web服務)。
在這種情況下,你需要:
1)服務合同在您的Web服務(定義操作(接口)):
[ServiceContract]
public interface IMyDataService
{
[OperationContract]
YourDataType GetData(int idValue);
}
2)數據合同將定義的數據結構,爲您的呼叫(這裏的返回類型YourDataType
):
[DataContract]
public class YourDataType
{
bool boolValue = true;
string stringValue = "Hello ";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
3)服務類,將真正實現Web服務方法和使用存儲過程進行調用數據庫 - 是這樣的:
public class YourDataService : IMyDataService
{
public YourDataType GetData(int idValue)
{
YourDataType result = new YourDataType();
using(SqlConnection _con = new SqlConnection("server=(local);database=test;integrated security=SSPI;"))
{
using(SqlCommand _cmd = new SqlCommand("YourStoredProcName", _con))
{
_cmd.Parameters.AddWithValue("@ID", idValue);
_cmd.Parameters.Add("@OutStringValue", SqlDbType.VarChar, 20)
.Direction = ParameterDirection.Output;
_cmd.Parameters.Add("@OutBoolValue", SqlDbType.Bit)
.Direction = ParameterDirection.Output;
_cmd.ExecuteNonQuery();
result.StringValue = _cmd.Parameters["@OutStringValue"].Value.ToString();
result.BoolValue = Convert.ToBoolean(_cmd.Parameters["@OutBoolValue"].Value);
}
}
return result;
}
}
在這裏,要知道我完全假設你的存儲過程看起來像(在我的情況下,像這樣:
CREATE PROCEDURE dbo.YourStoredProcName
(@ID INT, @OutStringValue VARCHAR(20) OUTPUT, @OutBoolValue BIT OUTPUT)
這可能是完全不同的你!你需要確保適應你的實際情況!
4)最後,你需要一種方法來託管WCF服務(IIS中,或自己在一個控制檯應用程序或NT服務) - 這只是標準的WCF工作
5)最後但並非最不重要的,你的客戶端應用程序將需要「添加服務引用」到該WCF服務,以便能夠再次調用它:這是完全標準的WCF東西,在這裏不需要特殊的步驟。
所以你有它 - 一個WCF服務調用你的存儲過程在數據庫中,返回一些自定義數據類型的值返回給調用者。
馬克
夢幻般的答案! – davewasthere 2009-09-29 12:39:56
- 1. C#通過url調用webservice
- 2. 使用C調用存儲過程#
- 3. 使用SQLServer 2008,存儲過程和WebService
- 4. 通過nhibernate調用存儲過程
- 5. 通過dblink調用存儲過程
- 6. 通過Rails調用存儲過程?
- 7. 如何使用c#通過odbc執行存儲過程?
- 8. 使存儲過程通用
- 9. 如何從SQL Server存儲過程調用webservice
- 10. 如何從另一個存儲過程調用存儲過程?
- 11. 如何調用其他存儲過程中的存儲過程
- 12. 使用存儲過程調用存儲過程的異常iBATIS
- 13. 如何使用datetime參數調用存儲過程中的存儲過程
- 14. 用C調用存儲過程
- 15. 如何用activerecord調用存儲過程?
- 16. 通過使用存儲過程
- 17. 通過ado.net從C#調用SQL Server存儲過程超時
- 18. 通過C++在MongoDB中調用存儲過程
- 19. 通過c調用linq服務的SQL Server存儲過程#
- 20. 如何在C#中使用通用數據庫連接調用存儲過程?
- 21. 如何通過Web API調用存儲過程
- 22. 如何通過jdbc代碼調用oracle的存儲過程
- 23. 如何通過雄辯(Laravel)調用存儲過程?
- 24. 通過駱駝sql存儲組件存儲過程調用
- 25. 如何通過jquery調用Webservice?
- 26. 通過EF6調用存儲過程,其中存儲過程調用另一個過程的結果
- 27. 如何在存儲過程中使用每個存儲過程?
- 28. 不能從c調用存儲過程#
- 29. 從C#調用Oracle存儲過程?
- 30. 調用在C#中的存儲過程
下一個簡單[通過Web服務,存儲過程和SQL查詢數據訪問(http://www.csharphelp.com/archives/archive252.html) – rahul 2009-09-29 04:14:15
上面的網址不工作了。 。因此更新相同。 http://www.csharphelp.com/2006/07/data-access-through-web-services-stored-procedures-and-sql-query/ – Ditty 2013-02-07 22:45:05