0

After selecting the department to update.

a submit button is click.

this error appear

{"readyState":4,"reponseText":"{\"Message\":\"Object reference not set to an instance of an object.\",\"StackTrace\":\" at WebService.yearEndClosing(String strDate, String endDate, String cond, String cal, String entryUser)in WebService.cs:line 390\",\"ExecptionType\":\"System.NullReferenceException\"}","responseJSON":{"Message":"Object reference not set to an instance of an object.","StackTrace":" at WebService.yearEndClosing(String strDate, STring endDate, String cond, String val, String entryUser) in WebService.cs:line 390\",\"ExecptionType\":\"System.NullReferenceException\"},"status":500, "statusText":"Internal Server Error"}

The code for submit button.

  //Function for submit button event
$(function () {
    $("#btnSubmit").bind("click", function (e) {
        if (confirm("Click [OK] to proceed on forfiet the leave of selected department.")) {
            var selectedDept = new Array();
            var i = 0;
            //Get checked checkbox in the list
            $(".bodyfont input").each(function () {
                if ($(this).is(":checked")) {
                    selectedDept[i] = $(this).val();
                    i++;
                }
            });
            var ddlVal = $("[id*='ddlVal']").val();
            var endDate = $("[id*='tEnd']").val();
            var strDate = $("[id*='tStart']").val();
            if (strDate != "" && endDate !="" && i > 0) {
                ShowLoading();
                $.ajax({
                    type: "POST",
                    url: "WebService.asmx/yearEndClosing",
                    data: "{ 'strDate':'" + strDate + "', 'endDate':'" + endDate + 
                            "', 'cond':'" + ddlVal + "', 'val':'" + JSON.stringify(selectedDept) +
                            "', 'entryUser':'" + getLoginID() + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (data) {
                        var json_obj = data.d;//parse JSON
                        if (json_obj != null) {
                            if (json_obj.length == 0) {
                                alert("All selected department/employee in date range are closed!")
                            }
                            else {
                                //deserialize json object to string
                                var table = "";
                                $("#tblNotClose tr").remove();
                                $.each(json_obj, function (index, YrEndClosing) {
                                    table += "<tr><td>" + YrEndClosing.empID + "</td><td>" + YrEndClosing.empName + "</td></tr>";
                                });
                                if (table != "") {
                                    header = "<tr><th>Emp ID</th><th>Emp No</th></tr>";
                                    $("#tblNotClose").append(header);
                                    $("#tblNotClose").append(table).removeClass("hidden");
                                }
                                $("#modalResult").modal('show');
                            }
                        }
                        else {
                            alert("Error on closing");
                        }

                        ShowDetails();
                    },
                    error: function (error) {
                        alert(JSON.stringify(error));
                    }
                });
                e.preventdefault;
            }
            else {
                alert("Due Date is not seleceted to forfiet the leave");
            }
        }
    });
});

And it is this alert(JSON.stringify(error)); which display the error.

Now lets breakdown the issue. base on my understanding the error is telling that there is something going on with the parameter in
yearEndClosing(String strDate, String endDate, String cond, String cal, String entryUser) which is on line 390

here i the code

[WebMethod(EnableSession = true), ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<YrEndClosing> yearEndClosing(string strDate, string endDate, string cond, string val, string entryUser)
{
    eLeaveModule em = new eLeaveModule();
    JavaScriptSerializer json = new JavaScriptSerializer();
    List<string> arrayString = json.Deserialize<List<string>>(val);
    DateTime dtStr = Convert.ToDateTime(strDate, CultureInfo.GetCultureInfo("en-us").DateTimeFormat);
    DateTime dtEnd = Convert.ToDateTime(endDate, CultureInfo.GetCultureInfo("en-us").DateTimeFormat);
    List<YrEndClosing> result = em.yearEndClosing(dtStr, dtEnd, cond, arrayString, entryUser);
    if (result.Count > 0)
    {
        string relDate = Regex.Replace(string.Format("{0:s}", DateTime.Now), @"[^0-9a-zA-Z]+", "");
        string subPath = @" C:\webOutput\eHRMS\Closing\";

        bool exists = System.IO.Directory.Exists(subPath);

        if (!exists)
            System.IO.Directory.CreateDirectory(subPath);


        using (StreamWriter writer = new StreamWriter(subPath + "ClosingList" + relDate + ".txt"))
        {
            for (int i = 0; i < result.Count; i++)
            { writer.WriteLine(result[i].empID + "-" + result[i].empName); }
        }
    }
    return result;
}

USEFUL INFORMATION

The code work in server 2 The same code not working in server 1 (current issue) No error when running on local by visual studio for web

May i know what could be the issue. I am still trying to even locate where the possible issue is at.

phan
  • 27
  • 9
  • Possible duplicate of [What is a NullReferenceException, and how do I fix it?](https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – Owen Pauling Aug 11 '17 at 08:59
  • @OwenPauling sir i think the issue is not nullreference, or maybe its not the only issue. as it is working find in the another server. but the same code were use and is not working at a different server instead. i would like to know where could the issue possibility be at. is it in the code i shown? – phan Aug 11 '17 at 10:00
  • Have you tried to change, in ajax call, `dataType` from `json` to `jsonp`? – erikscandola Aug 11 '17 at 10:11
  • @erikscandola hi sir, i tried that and it reduce a chunk of codes. now only resulting in "There was an error processing the request\",\"StackTrace\":\",\" ExceptionType\":\"\"}"," statusText":"Internal Server Error"} " – phan Aug 14 '17 at 06:21

0 Answers0