0

我是网络搜索的新手。我不知道如何在 Web 服务中编写程序请在程序中帮助我我想将 Web 服务连接到数据库然后从那里我得到 json 格式的数据

在客户端即时使用 jquery 移动框架,jquery Ajax

假设在数据库中

身份证标题

1个

2个

4

1 回答 1

1

这是我从我的一些代码中复制的示例。

WCF 接口定义

using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;

[ServiceContract]
public interface IGraphDataProvider
{
    [OperationContract]
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "devices")]
    List<string> get_devices();
}

WCF 实施

public class GraphDataProvider : IGraphDataProvider
{
    /**
     * @brief Return a (possibly empty) list of devices listed in the configuration DB
     * */
    public List<string> get_devices()
    {
        // If you want to modify your headers...
        // WebOperationContext.Current.OutgoingResponse.Headers["Access-Control-Allow-Origin"] = "*";

        // Now just return a list of strings, WCF will convert to JSON
        return getDevices();
    }
}

这会处理 JSON 响应。如果您不知道如何阅读您的 SQL DB,有几种方法。

  1. 您可以使用实体框架。它简单方便,一旦设置好,您的代码将如下所示:

    public static List<string> getDevices()
    {
        var db_context= new CfgEntities();
        var devices = from row in db_context.Devices
                      where !row.Device.StartsWith("#")
                      select row.Device.Trim();
        return devices.Distinct().ToList();
    }
    
  2. 使用 Microsoft 的SQL 客户端。您的代码将如下所示:

    using System.Data.SqlClient;
    // ...
    
    public static List<string> getDevices()
    {
        var sql_connection_ = new SqlConnection();
        sql_connection_.ConnectionString = string.Format("Server=localhost; database={0}; Trusted_Connection=SSPI", dbName);
        try
        {
            sql_connection_.Open();
        }
        // catch exceptions etc. If Open() worked then you have a connection. 
    
        string queryString = "SELECT [Device] from [Config].[dbo].[Devices]";
        // Now I'm just copying shamelessly from MSDN...
        SqlCommand command = new SqlCommand(queryString, sql_connection_);
        SqlDataReader reader = command.ExecuteReader();
    
        List<string> return_list = new List<string>();
        while (reader.Read())
        {
            return_list.Add((string)reader[0]);
        }
    
        return return_list;
    }
    
于 2013-10-21T06:44:12.847 回答