【问题标题】:Getting 500 status after Serializing SqlDataReader into Json将 SqlDataReader 序列化为 Json 后获取 500 状态
【发布时间】:2015-05-04 09:21:07
【问题描述】:

我收到状态 500 错误。我没有准确了解哪里做错了。 当我单击 getcustomer 按钮时,会调用返回 json 的“Getcustomers”方法。

脚本:

<script>
    var MyApp = angular.module("MyApp", []);
    MyApp.controller("ctrl", function ($scope, $http) {
        $scope.helloAngular = "hello";
        $scope.GetCustomers = function () {
            debugger;
            $http.get("/Home/Getcustomers")
                .success(function (data) {
                    $scope.customerDetails = data;
                }).
                error(function (data, status, thrownError) {
                    //alert(status);
                    //alert(data.responseText);
                    alert(thrownError);
                });
        }
    });

</script> 

服务器端代码: 我从这个函数中获取 json 数据:

 public ActionResult Getcustomers()
        {
            string query = "select top 10 * from Customers ";
            ArrayList custArray = new ArrayList();
            SqlCommand cmd = new SqlCommand(query, sqlcon);
            sqlcon.Open();
            var reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                custArray.Add(new
                    {
                        Name = reader["ContactName"],
                        City = reader["City"],
                        PostalCode = reader["PostalCode"],
                        Country = reader["Country"],
                        Phone = reader["Phone"],
                    });

            }
           var result= JsonConvert.SerializeObject(custArray);
            sqlcon.Close();
            return Json(result);

        }

我有搜索,但无法找到哪里出错了。请帮助我。

【问题讨论】:

  • 500 是来自您的服务器的错误。服务器端的日志是什么?
  • @Apédémak 当我调试时它给了我 json 数据,但不知道为什么它通过 500 状态
  • Well 500 是“内部服务器错误”。这都是关于服务器的。当您说您的 JSON 很好时,您的代码的哪一部分是?在你的 var 结果中?
  • @Apédémak 是在 var 结果中
  • 不要只是投反对票。如果有问题或愚蠢请告诉我

标签: javascript jquery asp.net-mvc angularjs razor


【解决方案1】:

是的,终于得到了我所缺少的东西。 由于状态 500 是服务器错误。这是因为阅读器未关闭而发生的 读完sqldatareader(我真的犯了愚蠢的错误)

public ActionResult Getcustomers()
        {
            string query = "select top 10 * from Customers ";
            ArrayList custArray = new ArrayList();
            SqlCommand cmd = new SqlCommand(query, sqlcon);
            sqlcon.Open();
            var reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                custArray.Add(new
                    {
                        Name = reader["ContactName"],
                        City = reader["City"],
                        PostalCode = reader["PostalCode"],
                        Country = reader["Country"],
                        Phone = reader["Phone"],
                    });

            }
            //Clean sqldatareader here;
            reader.Close();
            reader.Dispose();
           var result= JsonConvert.SerializeObject(custArray);
            sqlcon.Close();
            return Json(result);

        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    相关资源
    最近更新 更多