Хранение данных в БД по Ajax в ASP. NET MVC не запускается - PullRequest
0 голосов
/ 20 февраля 2020

Я хочу сохранить данные в базу данных на ajax в ASP. NET MVC. Я читаю очень статьи и пишу их в [y project, но я сталкиваюсь с ошибкой.

Я не знаю, как это работает правильно.

Например - мой код в контроллере:

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");
}

Хранимая процедура:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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>
<script src="~/Scripts/jquery-3.4.1.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src=”-/Scripts/jquery.unobtrusive-ajax.min.js”></script>


<div id="divEmp">

    @using (Ajax.BeginForm("InsertData_5", "Post", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "divEmp" }))
    {
        <table>
            <tr>
                <td>FirstName</td>
                <td>
                    <input type="text" id="txtFirstName" />
                </td>
            </tr>
            <tr>
                <td>LastName</td>
                <td>
                    <input type="text" id="txtLastName" />
                </td>
            </tr>
            <tr>
                <td>Phone</td>
                <td>
                    <input type="text" id="txtPhone" />
                </td>
            </tr>
            <tr>
                <td>
                    <input type="button" id="btnsubmit" value="Save" />
                </td>
            </tr>
        </table>

        <script type="text/javascript">
            $(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("saving", "InsertData_5", "Home")</li>
            </ul>   

        </div>
    </div>

</div>

Что мне делать?

Спасибо

1 Ответ

0 голосов
/ 20 февраля 2020

Этот код неправильный, я думаю. Вы пишете constr как переменную, но вы пытаетесь получить соединение с этой строкой из конфигурации.

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());

Пожалуйста, замените ее на эту

SqlConnection con = new SqlConnection(constr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...