1

以下のサンプル プロジェクトから、新しい SQL Server データベースを App_Data フォルダーに追加しました。 http://code.msdn.microsoft.com/How-to-consume-JSON-Web-5db0174b#content

ユーザーが名前、住所を入力するためのHTMLに1つのボタン、データベースに保存するためのクリックボタンを追加しました。

しかし、WinJS.xhr を使用して HTML テキスト ボックス、ボタンから入力された値を WCF に渡し、SQL Server データベースから CRUD を実行してアプリに出力を表示する方法がわかりません。

default.html

<input id="txtName" type="text" />
<input id="txtAddress" type="text" />
<button id="insertbtn">insert</button>

JSONWCFService.svc.cs

public void Insert(int name, int address)
    {
        string connectionString = System.Configuration.ConfigurationManager.
ConnectionStrings["Database1ConnectionString1"].ConnectionString;
        SqlConnection con = new SqlConnection(connectionString);

        string sql = "INSERT INTO Table1(Name, Address) VALUES (@Name, @Address)";
        SqlCommand cmd = new SqlCommand(sql, con);
        cmd.Parameters.AddWithValue("@Name", name);
        cmd.Parameters.AddWithValue("@Address", address);
        try
        {
            con.Open();
            int numAff = cmd.ExecuteNonQuery();
        }
        catch (SqlException exc)
        {
        }
        finally
        {
            con.Close();
        }
    }

IAddService.cs

public interface IAddService{
    [OperationContract]
    [WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
    void Insert(string name, string address);}

default.js

function insertButtonClick() {

    var baseURI2 = "http://localhost:45573/AddService.svc/Insert";
    var name = document.getElementById('txtName').value;
    var address = document.getElementById('txtAddress').value;

WinJS.xhr({
        type: "POST",
        url: baseURI2,
        headers: { "Content-type": "application/json" },
        data: JSON.stringify(txtName+ txtAddress)
    }).then(function complete(request) {
        var resdata = request.responseText;
    }, function error(er) {
        var err = er.statusText;
    })
}

コードの修正を手伝っていただくか、正しいサンプル コード (WinJS.xhr および JSONWCFService) を共有してください。

どうもありがとうございました!

4

0 に答える 0