Обновить ссылку на данные в table jquery

#c# #sql #linq

#c# #sql #linq

Вопрос:

Я пытаюсь создать запрос обновления linq и создаю таблицу с помощью jQuery, поэтому после обновления как мне сохранить изменения в данных в таблице?

  [WebMethod]
    public static string updateselect_data(int ServiceID, string frequency, string Freq_Du, string Freq_Mil)
    {
        string query_update = "";
        try
        {
            Track_Data track = new Track_Data();
            DataTable dt = new DataTable();
            var update =
                from p in track.Serv
                where p.ServiceID == ServiceID
                select p;

            foreach (var q_update in update)
            {
                q_update.frequency= frequency;
                q_update.Freq_Du= Freq_Du;
                q_update.Freq_Mil= Freq_Mil;
            }

            HttpContext.Current.Session["SID"] = ServiceID;
            HttpContext.Current.Session["frequency"] = frequency;
            HttpContext.Current.Session["Freq_Du"] = Freq_Du;
            HttpContext.Current.Session["Freq_Mil"] = Freq_Mil;

            try
            {
                track.SaveChanges();
            }
            catch (Exception e)
            {
                throw new Exception();

            }
            update.ToList().ForEach(row => dt.LoadDataRow(new object[] {  
           row.ServiceID, row.Frequency, row.Freq_Du, row.Freq_Mil }, false));

            query_update = DataSetToJSON(dt);
             return query_update;

        }
        catch
        {
            throw new Exception();
        }
  

КОД JQUERY

 <script type="text/javascript">
    debugger;
    $(function () {
            $('[ID*=btn_update]').on('click', function () {
            var ServiceID = '<%=Session["SID"]%>';
            var frequency='<%=Session["frequency"]%>';
                var Freq_Du = '<%=Session["Freq_Dur"]%>';
                var Freq_Mil = '<%=Session["Freq_Mil"]%>';
            debugger;
            var obj = {};
            obj.ServiceID = ServiceID;
            obj.frequency = frequency;
            obj.Freq_Dur= Freq_Du;
            obj.Freq_Mil = Freq_Mil;

            updatedata(obj);

        });
    });
    function updatedata(obj){
        $.ajax({
            type: "POST",
            url: "Maintenance.aspx/updateselect_data",
            contentType: "application/json;charset=utf-8",
            data:"{'SID:'"  obj.ServiceID "','frequency:'" obj.frequency "','Freq_Du:'" obj.Freq_Du "','Freq_Mil:'" obj.Freq_Mil "'}",
           dataType: "json",
        success:function(result)
        {
            debugger;
            var up = JSON.parse(result.d).response;

        }
    });
    }

</script>
  

я создаю таблицу через jquery сейчас, сначала я хочу обновить и хочу проверить в консоли сейчас, когда я выполняю приведенный выше код, который показывает ошибку s

Недопустимый объект, переданный в JSON

Комментарии:

1. Сообщение об ошибке является громким и ясным, вам необходимо инициализировать эти переменные ServiceID, Service_frequency, Next_Service

2. Попробуйте что-то вроде этого: обновить. ToList().ForEach(строка => dt.LoadDataRow(новый объект[] { строка.serviceId, строка.частота, строка. Freq_Du, строка. Freq_mil}, false));

3. эта ошибка показывает недопустимый объект, переданный в JSON @jdweng

4. Я не думаю, что имена столбцов из p отслеживаются. Серверы сопоставляют имена столбцов в опубликованном коде c #. Попробуйте вместо этого: обновить. ToList().ForEach(строка => dt.LoadDataRow(новый { SID = row.serviceId, частота = row.frequency, Freq_Dur = строка. Freq_Du, Freq_Mil = строка. Freq_mil}, false));

5. это показывает ошибки.. Ошибка 11 Лучший перегруженный метод соответствует ‘System.Data.DataTable. LoadDataRow(object[], bool)’ имеет некоторые недопустимые аргументы Ошибка 12 Аргумент 1: не удается преобразовать из ‘AnonymousType #1’ в ‘object[]’

Ответ №1:

Вы объявили следующее, но не присвоили никакого значения.

 int ServiceID ;
string Service_frequency;
string Next_Service;
  

Например;

 int ServiceID = 1 ;
string Service_frequency = "Weekly";
string Next_Service = "Tomorrow";
  

Комментарии:

1. Вы также полностью изменили код, вопрос, ошибку и ответ. Если на ваш предыдущий вопрос был дан ответ, и теперь у вас возникла другая проблема (которую вы делали и делаете), вам следует задать другой вопрос, а не полностью реорганизовывать свой в соответствии с текущей позицией.