مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mohamadhossin

عضویت از 1400/09/13

دکمه ادیت در asp.net-mvc تغییری در رکورد ایجاد نمیکند و خطایی نیز نمیدهد

  • شنبه 13 آذر 1400
  • 18:01
تشکر میکنم

سلام.من یک برنامه نویس مبتدی در زمینه۵  asp.net mvc هستم  اما با c# کار کرده ام.متاسفانه در شروع کار با مشکل ادیت رکوردهای دیتابیس برخورد کردم.دکمه های create,detail,delete بدرستی کار میکند اما ادیت نمیکند.نام دیتابیس customer و جدول peace می باشد .بخش مربوط به ادیت چنین است.لطفا راهنماییم کنید.

homecontroller:

 public ActionResult Index()

       {

           custemdb dbcust = new custemdb();

           ModelState.Clear();

           return View(dbcust.GetItemList());

       }

[HttpGet]

       public ActionResult Edit(int id)

       {

           

       custemdb ItemHandler = new custemdb();

           return View(ItemHandler.GetItemList().Find(itemmodel => itemmodel.ID == id));

         

       }

       [HttpPost]

       public ActionResult Edit(int id, Custem iList)

       {

           

           try

           {

               

              custemdb ItemHandler = new custemdb();

               ItemHandler.UpdateItem(iList);

               

               return RedirectToAction("Index");

             

 

               //return to the index page if complete

               return RedirectToAction("index");

 

           }

           catch { return View(); }

       }

--------

custemdb.cs

 

connection();namespace WebApplication3.Models

{

   

   public class custemdb

   {

       private SqlConnection con;

       private void connection()

       {

           string constring = ConfigurationManager.ConnectionStrings["customer"].ToString();

           con = new SqlConnection(constring);

       }

 

 

       public List<Custem> GetItemList()

       {

 

           connection();

           List<Custem> iList = new List<Custem>();

 

           string query = "SELECT * FROM peace";

           SqlCommand cmd = new SqlCommand(query, con);

           SqlDataAdapter adapter = new SqlDataAdapter(cmd);

           DataTable dt = new DataTable();

 

           con.Open();

           adapter.Fill(dt);

           con.Close();

 

           foreach (DataRow dr in dt.Rows)

           {

               iList.Add(new Custem

               {

                   ID = Convert.ToInt32(dr["ID"]),

                   code = Convert.ToInt32(dr["code"]),

                   peaces = Convert.ToString(dr["peaces"]),

 

               });

           }

           return iList;

       }

       

    }

 

 

       public bool UpdateItem(Custem iList)

       {

           connection();

       string query = "UPDATE peace SET code = '" + iList.code + "', peaces = '" + iList.peaces + " WHERE ID = " + iList.ID;

           SqlCommand cmd = new SqlCommand(query, con);

           con.Open();

           int i = cmd.ExecuteNonQuery();

           con.Close();

 

           if (i >= 1)

               return true;

           else

               return false;

   }

}

.......edit view.......

@model WebApplication3.Models.Custem

 

@{

   ViewBag.Title = "Edit";

}

 

<h2>Edit</h2>

 

 

@using (Html.BeginForm())

{

   @Html.AntiForgeryToken()

   

   <div class="form-horizontal">

       <h4>Custem</h4>

       <hr />

       @Html.ValidationSummary(true)

       @Html.HiddenFor(model => model.ID)

 

       <div class="form-group">

           @Html.LabelFor(model => model.code, new { @class = "control-label col-md-2" })

           <div class="col-md-10">

               @Html.EditorFor(model => model.code)

               @Html.ValidationMessageFor(model => model.code)

           </div>

       </div>

 

       <div class="form-group">

           @Html.LabelFor(model => model.peaces, new { @class = "control-label col-md-2" })

           <div class="col-md-10">

               @Html.EditorFor(model => model.peaces)

               @Html.ValidationMessageFor(model => model.peaces)

           </div>

       </div>

 

       <div class="form-group">

           <div class="col-md-offset-2 col-md-10">

               <input type="submit" value="Save" class="btn btn-default" />

           </div>

       </div>

   </div>

}

 

<div>

   @Html.ActionLink("Back to List", "Index")

</div>

 

<script src="~/Scripts/jquery-1.10.2.min.js"></script>

<script src="~/Scripts/jquery.validate.min.js"></script>

<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

 

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

علی یوسفی

عضویت از 1400/05/20

  • چهارشنبه 24 آذر 1400
  • 10:39

خیلی سادست دوست عزیز ، مدل شما به درستی پر نمیشه و به کنترلر نمیاد، ورودی های کنترلر رو چک بکینن ایا همه فیلد های require مدل میان یا یکیشون خالی رها میشه که ثبت نمیشه

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)