0

Web 検索は初めてです。Web サービスでプログラムを作成する方法がわかりません。プログラムで私を助けてください。Web サービスをデータベースに接続したいのですが、そこから json 形式でデータを取得しています。

クライアント側でjqueryモバイルフレームワーク、jquery Ajaxを使用

データベースで仮定する

IDタイトル

1ASD

2 asw

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. Entity Frameworkを使用できます。簡単で便利です。一度設定すると、コードは次のようになります。

    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 に答える