回答
请参阅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