如何在WebService中使用参数并将其传递给存储过程

时间:2017-01-02 02:59:54

标签: c# asp.net angularjs web-services

首先,我是Angular JS的新手并试图探索这种语言,所以我不流利......:)

我尝试通过收集从URL传递的数据,从Web服务对存储过程进行简单调用。没有数据被提取。

我知道我搞砸了某个地方,你能不能指出我在哪里。 :)

这将是我的网址:

http://localhost:2752/ProjectName/PageName.aspx?Id=24

这是我的脚本,我从URL获取数据并将其传递给服务:

/// <reference path="../angular.min.js" />

window.params = function () {
    var params = {};
    var param_array = window.location.href.split('?')[1].split('&');
    for (var i in param_array) {
        x = param_array[i].split('=');
        params[x[0]] = x[1];
    }
    return params;
} ();


var app = angular.module("myModule", []);

app.controller("myController", function ($scope, $http) {
    $http.post('Services/GetCompletePropDetailsService.asmx/GetPropertyDetailsList' ,window.params.Id)
                   .then(function (response) {
                       $scope.PropertyDetailsListitem = response.data;
                   });
});

这是我的服务:

[WebMethod]
public void GetPropertyDetailsList(String submittedData)
{
    List<PreviewDataClass> listPropertyDetails = new List<PreviewDataClass>();

    string cs = ConfigurationManager.ConnectionStrings["DBPCS"].ConnectionString;

    using (SqlConnection con = new SqlConnection(cs))
    {
        SqlCommand cmd = new SqlCommand("spPreviewDataUserId", con);
        cmd.CommandType = CommandType.StoredProcedure;

        SqlParameter username = new SqlParameter("@UserId", submittedData);
        cmd.Parameters.Add(username);

        con.Open();

        SqlDataReader rdr = cmd.ExecuteReader();

        while (rdr.Read())
        {
            PreviewDataClass PropertyDetails = new PreviewDataClass();
            PropertyDetails.FullName = Convert.ToString(rdr["FullName"]);                    

            listPropertyDetails.Add(PropertyDetails);
        }
    }

    JavaScriptSerializer js = new JavaScriptSerializer();
    Context.Response.Write(js.Serialize(listPropertyDetails));
}

赞赏任何更好的方法来实现同样的目标

0 个答案:

没有答案