Web 検索は初めてです。Web サービスでプログラムを作成する方法がわかりません。プログラムで私を助けてください。Web サービスをデータベースに接続したいのですが、そこから json 形式でデータを取得しています。
クライアント側でjqueryモバイルフレームワーク、jquery Ajaxを使用
データベースで仮定する
IDタイトル
1ASD
2 asw
Web 検索は初めてです。Web サービスでプログラムを作成する方法がわかりません。プログラムで私を助けてください。Web サービスをデータベースに接続したいのですが、そこから json 形式でデータを取得しています。
クライアント側でjqueryモバイルフレームワーク、jquery Ajaxを使用
データベースで仮定する
IDタイトル
1ASD
2 asw
これは、私のコードの一部からコピーした例です。
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 の読み方がわからない場合は、いくつかの方法があります。
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();
}
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;
}