MahmoudOmar Ответов: 0

Не удается вставить значение NULL в столбец " ID "таблицы" dbo.centertechnical"; столбец не допускает значений null. Вставить не удается.\r \ n заявление было прекращено.


я хочу сохранить значение в базе данных sql server, но у меня есть эта ошибка , но я не использую identity
я хочу сохранить значение, которое я пишу в текстовом поле.

это класс модели CenterLocation:-
public partial class CenterTechnical
  {
      public int ID { get; set; }
      public string LocationCenterID { get; set; }
      public string TechName { get; set; }
      public string TechMobile { get; set; }
      public string TechPhone { get; set; }
      public string TechAddress { get; set; }

      public virtual LocationCenter LocationCenter { get; set; }
  }


и это создание метода в контроллере:-

[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "ID, LocationCenterID, TechName, TechMobile, TechPhone, TechAddress")]CenterTechnical centerTechnical)
        {
            if(ModelState.IsValid)
            {
                var newTechnical = new CenterTechnical()
                {
                    ID = centerTechnical.ID,
                    LocationCenterID = centerTechnical.LocationCenterID,
                    TechName = centerTechnical.TechName,
                    TechMobile = centerTechnical.TechMobile,
                    TechPhone = centerTechnical.TechPhone,
                    TechAddress = centerTechnical.TechAddress
                };
                db.CenterTechnical.Add(newTechnical);
                db.SaveChanges();

                return RedirectToAction("Index");
            }
            else
            {
                return View(centerTechnical);
            }
        }


Смотреть :-
@using (Html.BeginForm("Create", "CenterTechnical", FormMethod.Post, new { enctype = "form-data" }))
{
    @Html.AntiForgeryToken()
    <div class="row">
        <div class="col-md-12">
            <div class="box box-DG">
                <div class="box-header with-border">
                    <span style="color:#2D69B7"></span>
                    <h3 class="box-title">@WhiteWhaleLanguage.Technical</h3>
                </div>
                <div class="box-body">
                    <div class="row">
                        <div class="col-md-12">
                            <div class="form-horizontal">
                                <div class="form-group">
                                    @Html.LabelFor(model => model.ID, @WhiteWhaleLanguage.TechnicalID, htmlAttributes: new { @class = "control-label col-md-2" })
                                    <div class="col-md-6">
                                        <div class="">
                                            @Html.TextBoxFor(model => model.ID, new { @class = "form-control" })
                                        </div>
                                    </div>
                                </div>
                                <div class="form-group">
                                    @Html.LabelFor(model => model.LocationCenterID, @WhiteWhaleLanguage.CenterCode, htmlAttributes: new { @class = "control-label col-md-2" })
                                    <div class="col-md-6">
                                        <div class="">
                                            @Html.TextBoxFor(model => model.LocationCenterID, new { @class = "form-control" })
                                        </div>
                                    </div>
                                </div>
                                <div class="form-group">
                                    @Html.LabelFor(model => model.TechName, @WhiteWhaleLanguage.TechName, htmlAttributes: new { @class = "control-label col-md-2" })
                                    <div class="col-md-6">
                                        <div class="">
                                            @Html.TextBoxFor(model => model.TechName, new { @class = "form-control" })
                                        </div>
                                    </div>
                                </div>
                                <div class="form-group">
                                    @Html.LabelFor(model => model.TechMobile, @WhiteWhaleLanguage.TechMobile, htmlAttributes: new { @class = "control-label col-md-2" })
                                    <div class="col-md-6">
                                        <div class="">
                                            @Html.TextBoxFor(model => model.TechMobile, new { @class = "form-control" })
                                        </div>
                                    </div>
                                </div>
                                <div class="form-group">
                                    @Html.LabelFor(model => model.TechPhone, @WhiteWhaleLanguage.TechPhone, htmlAttributes: new { @class = "control-label col-md-2" })
                                    <div class="col-md-6">
                                        <div class="">
                                            @Html.TextBoxFor(model => model.TechPhone, new { @class = "form-control" })
                                        </div>
                                    </div>
                                </div>
                                <div class="form-group">
                                    @Html.LabelFor(model => model.TechAddress, @WhiteWhaleLanguage.TechAddress, htmlAttributes: new { @class = "control-label col-md-2" })
                                    <div class="col-md-10">
                                        <div class="">
                                            @Html.TextAreaFor(model => model.TechAddress, new { @class = "form-control", @rows = "5" })
                                        </div>
                                    </div>
                                </div>
                                <br />
                                <div class="modal-footer with-border">
                                    <input type="submit" name="" value=@WhiteWhaleLanguage.SaveNewTechnical , class="btn btn-primary col-md-2" />
                                    @Html.ActionLink(WhiteWhaleLanguage.BackToList, "Index", null, new { @class = "btn btn-default" })
                                </div>
                            </div>    
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
}


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

я хочу добавить значение в текстовое поле и сохранить значения, и я не использую identity

[no name]

Сообщение об ошибке не требует пояснений. Так в чем же ваш вопрос?

MahmoudOmar

Почему, когда я пишу число, подобное 2, в textboxFor ID, оно дает мне эту ошибку?

[no name]

Вы узнаете это, научившись отлаживать свой код. Очевидно, что все, что вы вводите, не делает этого, и вы получаете нулевое значение.

Bryian Tan

Вы подтвердили центротехнику.ID не является нулевым?

MahmoudOmar

это первичный ключ, но я не делаю его идентификацией, но когда я использовал строку запроса, она работала. почему - не знаю !!!
это код Edite:-
[AuthorizeRole (nameof(CenterTechnical), nameof(Create))]
[HttpPost]
[ValidateAntiForgeryToken]
общественная ActionResult создать(/*[Персонализация(включая = "идентификатор, LocationCenterID, TechName, Techmobileбыл, TechPhone, TechAddress")]*/CenterTechnical centerTechnical)
{
if (ModelState.Функция IsValid)
{
string constr = ConfigurationManager.ConnectionStrings ["WhiteWhaleModel"].Параметр connectionString;
using (SqlConnection con = new SqlConnection(constr))
{
string query = " INSERT INTO CenterTechnical(ID, LocationCenterID,TechName,TechMobile,TechPhone,TechAddress) ";
query = query + " значения (@ID, @LocationCenterID, @TechName, @TechMobile, @TechPhone, @TechAddress) ";
используя (sqlcommand, который команду cmd = новый sqlcommand, который(запрос))
{
УМК.Подключение = кон;
против.Открыть();
УМК.Параметры.AddWithValue ("@ID", centerTechnical.ID);
УМК.Параметры.AddWithValue ("@LocationCenterID", centerTechnical.LocationCenterID);
УМК.Параметры.AddWithValue ("@TechName", centerTechnical.TechName);
УМК.Параметры.AddWithValue ("@TechMobile", centerTechnical.Techmobileбыл);
УМК.Параметры.AddWithValue ("@TechPhone", centerTechnical.TechPhone);
УМК.Параметры.AddWithValue ("@TechAddress", centerTechnical.TechAddress);
УМК.Метод executenonquery();
против.Закрывать();
}
}
//var newTechnical = новый Центртехникал()
//{
// Идентификатор = centerTechnical.Идентификатор,
// LocationCenterID = centerTechnical.LocationCenterID,
// TechName = centerTechnical.TechName,
// TechMobile = centerTechnical.Techmobileбыл,
// TechPhone = centerTechnical.TechPhone,
// TechAddress = centerTechnical.TechAddress
//};
//дБ.CenterTechnical.Добавить (newTechnical);
//дБ.Метод SaveChanges();

return RedirectToAction ("индекс");
}
ещё
{
обратный вид(centerTechnical);
}
}

Bryian Tan

Ваш исходный код выглядит прекрасно. Это должно сработать, вот что я рекомендую вам проверить. На диаграмме EDMX найдите Центральную техническую модель. Нажмите на свойство ID, щелкните правой кнопкой мыши и выберите пункт Свойства, убедитесь, что StoreGeneratedPattern = Нет

0 Ответов