#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. Вы также полностью изменили код, вопрос, ошибку и ответ. Если на ваш предыдущий вопрос был дан ответ, и теперь у вас возникла другая проблема (которую вы делали и делаете), вам следует задать другой вопрос, а не полностью реорганизовывать свой в соответствии с текущей позицией.