创建 Restful Web 服务以在 C# 中调用存储过程
Posted
技术标签:
【中文标题】创建 Restful Web 服务以在 C# 中调用存储过程【英文标题】:Create Restful webservices to call a stored procedure in C# 【发布时间】:2021-08-21 06:02:38 【问题描述】:如何在 Visual Studio 2019 中创建 Restful Web 服务以调用存储过程。我尝试使用 SOAP 和 WCF Web 服务,但我不知道如何使用 RESTful Web 服务。我需要在 URI 模板中提供什么?请提供任何示例代码或链接
public interface IRestWebService
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "",
RequestFormat = WebMessageFormat.,
ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped)]
int callStoredProcedure(string value);
【问题讨论】:
您在处理哪一部分,Web 服务还是调用存储过程?您的问题缺乏细节,请向我们展示您尝试过的一些代码。 不要评论更新的信息,编辑问题。并阅读***.com/help/how-to-ask 不要尝试使用 WCF REST 服务,除非您需要维护一些已有 10 年历史的应用程序。在 MVC 和后来的 Web API 之前,WCF REST 是作为权宜之计而创建的。甚至 Web API 现在也有 9 年历史了。它需要 很多 代码,而在 Web API 中只需要几行代码。 在任何情况下,您尝试的是 REST 的相反。对于 REST,URL 表示 对象 或 资源,而对这些资源的操作由 HTTP 动词(如 GET/POST/PUT/PATCH/DELETE)执行。如果要检索所有客户,请在https://.../Customers
上执行 GET
。对于特定客户,请在https://..../Customers/5
上获取。要创建,请在.../Customers
上发布。要编辑,请 PUT ` .../Customers/1` 等
这就是为什么所有 Web API 教程都显示 CustomersController
以及 Get
、Get(int)
、Post(Customer)
等操作的原因
【参考方案1】:
使用 Empty 模板创建一个 Asp.Net Web 应用程序并检查 Web Api:
创建项目后,右键单击Controller文件夹并选择Web Api 2 Controller-Empty 现在你有一个 Restful Api 控制器,可以从任何地方调用。(例如从 agular http get 请求服务)
public class RestWebServiceController : ApiController
SqlConnection con;
public RestWebServiceController()
con = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ToString());
[HttpGet]
public IHttpActionResult CallStoredProcedure(string Name)
int ReturnValue = 0;
SqlCommand cmd = new SqlCommand("StartOnline", con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
SqlParameter ret = new SqlParameter();
ret.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.AddWithValue("@Name", Name);
ret.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(ret);
cmd.ExecuteNonQuery();
try
con.Open();
cmd.ExecuteNonQuery();
con.Close();
ReturnValue = (int)ret.Value;
catch (Exception ex)
return Ok(ReturnValue);
```
【讨论】:
如何在我的客户端(即 windows)应用程序中使用这个宁静的 Web 服务 看看这个链接***.com/questions/32716174/…以上是关于创建 Restful Web 服务以在 C# 中调用存储过程的主要内容,如果未能解决你的问题,请参考以下文章
要在 C# 中使用 RESTful Web 服务,我应该使用 HttpWebRequest 吗?
在 C# RESTful Web 服务中删除 xml 命名空间返回字符串