Хранение данных в БД с помощью ajax in ASP.NET MVC не будет запущен
Привет Я хочу, чтобы сохранить данные в БД с помощью AJAX в ASP.NET в MVC. Я читаю очень много статей и пишу их в своем проекте, но сталкиваюсь с ошибками.
Я не знаю, как это работает должным образом.
Например :
Мой код в контроллере :
public ActionResult InsertData_5() { return View(); } [HttpPost] public ActionResult InsertData_5(Personal objdata) { try { //SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[connectionString].ToString()); string constr = "Data Source=192.168.100.1;Initial Catalog=ContosoUniversity1;Persist Security Info=True;User ID=sa;Password=Abhar70"; SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[constr].ToString()); con.Open(); SqlCommand cmd = new SqlCommand("InsertData_SP", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@FirstName", objdata.FirstName); cmd.Parameters.AddWithValue("@LastName", objdata.LastName); cmd.Parameters.AddWithValue("@Phone", objdata.Phone); cmd.ExecuteNonQuery(); con.Close(); } catch (Exception) { throw; } return View("InsertData_5"); }
+++++++++++++++++
Содержит процедуру хранения :
USE [ContosoUniversity1] GO /****** Object: StoredProcedure [dbo].[InsertData_SP] Script Date: 02/18/2020 15:04:34 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- Batch submitted through debugger: SQLQuery1.sql|0|0|C:\Users\Administrator\AppData\Local\Temp\~vsF4A9.sql ALTER PROCEDURE [dbo].[InsertData_SP] ( @FirstName nvarchar(MAX), @LastName nvarchar(MAX), @Phone nvarchar(MAX) ) AS BEGIN INSERT INTO Personal_tbl2 ( FirstName ,LastName ,Phone ) Values ( @FirstName ,@LastName ,@Phone ) END
+++++++++++++++++
Содержит точку зрения . файл : InsertData_5.cshtml :
@model ContosoUniversity.Models.Personal @using System.Web.Optimization; @{ ViewBag.Title = "InsertData_5"; } <h2>Index</h2> <div id="divEmp"> @using (Ajax.BeginForm("InsertData_5", "Post", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp" })) { <table> <tbody> <tr> <td>FirstName</td> <td> </td> </tr> <tr> <td>LastName</td> <td> </td> </tr> <tr> <td>Phone</td> <td> </td> </tr> <tr> <td> </td> </tr> </tbody> </table> <script> $(document).ready(function () { $("#btnsubmit").click(function () { $.ajax( { type: "POST", url: "Home/InsertData_5", data: { FirstName: $("#txtFirstName").val(), LastName: $("#txtLastName").val(), Phone: $("#txtPhone").val() } }); }); }); </script> } </div>
++++++++++++++++
Содержит файл : Index.cshtml :
У меня есть кнопка в этом файле. Когда программа запускается, я нажимаю кнопку. Он получает данные. Но не храните их в БД.
@{ ViewBag.Title = "first page"; } <div class="jumbotron"> <h1>aa</h1> </div> <div class="row"> <div class="col-md-4"> <div class="navbar-collapse collapse"> <ul class="btn btn-default"> <li>@Html.ActionLink("save by Ajax", "InsertData_5", "Home")</li> </ul> </div> </div> </div>
Что же мне делать?
спасибо
Что я уже пробовал:
Я читаю очень много статей и пишу их в своем проекте, но сталкиваюсь с ошибками.
Я не знаю, как это работает должным образом.
Richard Deeming
Я пытался исправить форматирование вашего кода, но некоторые из ваших кодов, кажется, исчезли. Нет <input>
теги, @Html.TextBoxFor
или @Html.EditorFor
звонки в любую точку вашего города InsertData_5.cshtml
просмотр, так что не будет никаких данных для отправки.
Вы также не описали, в чем заключается проблема. Вам нужно использовать инструменты разработчика Вашего браузера, чтобы изучить запрос AJAX, чтобы увидеть, какую ошибку вы получаете в ответе.
Кроме того, веб-приложение должно НИКОГДА использовать sa
для подключения к SQL Server. Это неограниченный пользователь, который может быть использован для уничтожения вашей базы данных, вашего сервера или, возможно, даже всей вашей сети. Используйте определенную учетную запись для вашего приложения, которая имеет только те разрешения, которые требуются вашему приложению.
И я надеюсь, что это не твое настоящее имя. sa
пароль, который вы только что опубликовали на публичном форуме!
phil.o
catch (Exception){ throw;}это контрпродуктивно,так как вы ловите исключение и сразу же бросаете
Richard Deeming
Не совсем. throw;
сам по себе повторно выбрасывает исходное исключение, сохраняя трассировку стека.
Все равно нет смысла ловить исключение, если вы просто собираетесь его повторно бросить. Но все не так плохо, как вы предполагаете. :)
phil.o
Спасибо за информацию, Ричард. Я подумал, вспоминая старую статью, посвященную этому; моя память, должно быть, начинает ухудшаться.
ZurdoDev
Мы тоже не знаем, что случилось, потому что вы не сказали нам, в чем ошибка, а я ужасно умею угадывать ошибки.