ASP.NET Web API 是一種框架,用於輕松構建可以訪問多種客戶端(包括瀏覽器和移動設備)的 HTTP 服務。 ASP.NET Web API 是一種用於在 .NET Framework 上構建 RESTful 應用程序的理想平台。 本文主要實現ASP.NET WebAPI 連接數據庫獲取數據,並以Json字符串格式返回。 1.創建ASP.NET Web Application(.NET Framework)項目; 2.選擇Web API;
3.創建新項目完成;
在ValuesController.cs中修改Get方法並連接SQLServer數據庫獲取數據,以Json字符串格式返回:
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Web.Http; using Newtonsoft.Json; namespace WebApplication1.Controllers { public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string Get(int id) { try { SqlConnection sqlConnection = new SqlConnection( "Data Source=127.0.0.1;Initial Catalog=GaryWeb;Integrated Security=True;User Id=sa;Password=123456"); sqlConnection.Open(); string sql = "select * from Users"; DataSet dataSet = new DataSet(); SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sql, sqlConnection); sqlDataAdapter.Fill(dataSet); return JsonConvert.SerializeObject(dataSet); } catch (Exception ex) { return ex.ToString(); } } // POST api/values public void Post([FromBody]string value) { } // PUT api/values/5 public void Put(int id, [FromBody]string value) { } // DELETE api/values/5 public void Delete(int id) { } } }
運行項目: 獲得返回Json字符串數據:
{
"Table": [ { "UserID": 1, "UserName": "admin", "DisplayName": "admin1", "Password": "jZae727K08KaOmKSgOaGzww/XVqGr/PKEgIMkjrcbJI=", "Email": "289602025@qq.com", "Status": 0, "RegistrationTime": "2017/6/1", "LoginTime": null, "LoginIP": null }, { "UserID": 2, "UserName": "admin1", "DisplayName": "admin1", "Password": "jZae727K08KaOmKSgOaGzww/XVqGr/PKEgIMkjrcbJI=", "Email": "289602025@qq.com", "Status": 0, "RegistrationTime": "2017/6/1", "LoginTime": null, "LoginIP": null }, { "UserID": 3, "UserName": "admin2", "DisplayName": "admin2", "Password": "jZae727K08KaOmKSgOaGzww/XVqGr/PKEgIMkjrcbJI=", "Email": "289602025@qq.com", "Status": 0, "RegistrationTime": "2017/6/1", "LoginTime": null, "LoginIP": null } ] }