Member 14185275 Ответов: 2

Как вставить данные в базу данных SQL с помощью jquery.


Я пытаюсь вставить данные в базу данных с помощью jQuery, но данные не вставляются.Он отображает предупреждение как ошибку.Может ли кто-нибудь помочь мне с этим?

Что я уже пробовал:

CS:

[WebMethod]
   public static void insertion(string Title,string Description,string Category,string Priority,string Attachment)
   {
       using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["msgscon"].ConnectionString))
       {
           using (SqlCommand cmd = new SqlCommand("INSERTMD", con))
           {
               cmd.CommandType = CommandType.StoredProcedure;
               cmd.Parameters.AddWithValue("@MD_TITLE", Title);
               cmd.Parameters.AddWithValue("@MD_DESC", Description);
               cmd.Parameters.AddWithValue("@MD_CAT_ID", Category);
               cmd.Parameters.AddWithValue("@MD_P_ID", Priority);
               cmd.Parameters.AddWithValue("@MD_ATTACHMENT", Attachment);
               con.Open();
               cmd.ExecuteNonQuery();
               con.Close();
           }
       }
   }


Aspx-файл:

$('#btn_savemd').click(function () {
               var title = $('#tb_title').val();
               var cat = $('#DDL_cat option:selected').index();
               var prior = $('#DDL_prior option:selected').index();
               var desc = $('#tb_desc').val();
               var attach = $('#FileUpload1').val();
               var strfields = ''; var missfields = ''; var i = 0;
               if (title == '') {
                   missfields = true;
                   i = i + 1;
                   strfields += i + " Please enter  Title \n";
               }
               if (cat == 0) {
                   missfields = true;
                   i = i + 1;
                   strfields += i + " Please select Category \n";
               }
               if (prior == 0) {
                   missfields = true;
                   i = i + 1;
                   strfields += i + " Please select Priority \n";
               }
               if (desc == '') {
                   missfields = true;
                   i = i + 1;
                   strfields += i + " Please enter Description \n";
               }

               if (attach == '') {
                   missfields = true;
                   i = i + 1;
                   strfields += i + " Please select Attachment \n";
               }
               if (missfields) {
                   alert('Please fill following details \n' + strfields);
                   return false;
               }
               var data = { Title: title, Description: desc, Category: cat Priority: prior, Attachment: attach };
               $.ajax({
                   type: "POST",
                   contentType: "application/json; charset=utf-8",
                   url: "jQueryMsgs.aspx/insertion",
                   data: '{' + JSON.stringify(data) + '}',
                   dataType: "json",
                   success: function () {
                           alert('Message Details Added Successfully');
                   },
                   error: function () {
                       alert('Error');
                   }
               });
           });

F-ES Sitecore

Отладьте веб-метод, чтобы увидеть, вызывается ли он, если он есть, проверьте параметры, передаваемые ему, и посмотрите, не возникает ли какая-либо ошибка. Одна из проблем, с которой вы можете столкнуться, заключается в том, что вы не можете загружать файлы так, как вы это делаете, так что это может быть проблемой. Если веб-метод не вызывается, то используйте раздел Сеть инструментов браузера, чтобы изучить вызов веб-метода и посмотреть, какие ошибки происходят, ответ обычно использует дополнительную информацию о том, почему вызов не удался. Это может быть так же просто, как ошибка 404.

Dominic Burford

В чем же ошибка? Вам нужно обновить обратный вызов ошибки следующим образом, чтобы увидеть основную ошибку:

ошибка: функция (ответ) {
консоли.ошибки в журнале (`${json-файле.преобразовать в строки(ответ)}`);
}

ZurdoDev

Простой. Все, что вам нужно сделать, это отладить его. Очень просто.

2 Ответов

Рейтинг:
0

Richard Deeming

Цитата:
var data = { Title: title, Description: desc, Category: cat Priority: prior, Attachment: attach };
Этот объектный литерал недопустим. Вы пропускаете запятую между категорией и свойствами приоритета:
var data = { Title: title, Description: desc, Category: cat, Priority: prior, Attachment: attach };


Цитата:
data: '{' + JSON.stringify(data) + '}',
То, что вы отправляете в данный момент, не является допустимым JSON:
{ { Title: "...", Description: "...", Category: "...", Priority: "...", Attachment: "..." } }
Удалите лишние фигурные скобки из ваших опубликованных данных:
data: JSON.stringify(data),
{ Title: "...", Description: "...", Category: "...", Priority: "...", Attachment: "..." }


Цитата:
var attach = $('#FileUpload1').val();
public static void insertion(..., string Attachment)
Это не то, как работает загрузка файлов. Вы сохраняете путь - или, возможно, просто имя - файла в том виде, в каком он существует на компьютере пользователя Этот путь не будет действителен ни на сервере, ни на любом другом компьютере, который обращается к вашему сайту.

Может быть появиться для работы при тестировании сайта в Visual Studio. Но это только потому, что в данном конкретном случае клиент и сервер-это один и тот же компьютер. Как только вы развернете свой код на реальном сервере, он перестанет работать.

Чтобы загрузить файл с помощью AJAX, вам нужно будет использовать FormData объект:
Использование объектов FormData - веб-API | MDN[^]

На сервере вам нужно будет использовать Request.Files коллекция для доступа к загруженному файлу. Вам нужно будет сохранить его где-нибудь на вашем сервере и сохранить путь, по которому вы его сохранили, в своей базе данных.


Рейтинг:
0

Jatinath

Привет,

вы пропустили запятую ',' [между приоритетом cat] при формировании объекта JSON. добавьте запятую и попробуйте.

var data = { Title: title, Description: desc, Category: cat , Priority: prior, Attachment: attach };


Richard Deeming

Как я уже говорил на прошлой неделе.

Есть несколько других проблем с кодом из этого вопроса, которые также необходимо решить.