为什么我的ASP.NET MVC无法将数据插入数据库

本文关键字:数据 插入 数据库 我的 ASP NET MVC 为什么 | 更新日期: 2023-09-27 18:22:46

我使用ASP.NET MVC创建了一个小型网站,但它无法创建新的、编辑或删除数据库中的数据。数据只显示在网页上,但当我在SQL中使用SELECT *命令时,数据不会显示。

webconfig中的我的连接字符串:

<add name="CodeFileDBContext"
  providerName="System.Data.SqlClient"
  connectionString="Data Source=HOANG-PC'SQLSERVER01;Initial Catalog=Ciaos;User Id=sa;Password=**********;MultipleActiveResultSets=True" />

型号:

namespace Ciao.Models
{
    public class CodeFile
    {
        [Key]
        public int ColdeFile_ID { get; set;}
        public string Website_Name { get; set;}
        public string Service_Name { get; set;}
        public DateTime Date_In { get; set;}
        public DateTime Date_Out { get; set;}
        public int Service_Status { get; set;}
    }
    public class CodeFileDBContext : DbContext
    {
        public DbSet<CodeFile> tbl_CodeFile { get; set; }
    }
}

控制器:

namespace Ciao.Controllers
{
    public class CodeFileController : Controller
    {
        private CodeFileDBContext db = new CodeFileDBContext();
        //
        // GET: /CodeFile/
        public ActionResult Index()
        {
            return View(db.tbl_CodeFile.ToList());
        }
        //
        // GET: /CodeFile/Details/5
        public ActionResult Details(int id = 0)
        {
            CodeFile codefile = db.tbl_CodeFile.Find(id);
            if (codefile == null)
            {
                return HttpNotFound();
            }
            return View(codefile);
        }
        //
        // GET: /CodeFile/Create
        public ActionResult Create()
        {
            return View();
        }
        //
        // POST: /CodeFile/Create
        [HttpPost]
        public ActionResult Create(CodeFile codefile)
        {
            if (ModelState.IsValid)
            {
                db.tbl_CodeFile.Add(codefile);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(codefile);
        }
        //
        // GET: /CodeFile/Edit/5
        public ActionResult Edit(int id = 0)
        {
            CodeFile codefile = db.tbl_CodeFile.Find(id);
            if (codefile == null)
            {
                return HttpNotFound();
            }
            return View(codefile);
        }
        //
        // POST: /CodeFile/Edit/5
        [HttpPost]
        public ActionResult Edit(CodeFile codefile)
        {
            if (ModelState.IsValid)
            {
                db.Entry(codefile).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(codefile);
        }
        //
        // GET: /CodeFile/Delete/5
        public ActionResult Delete(int id = 0)
        {
            CodeFile codefile = db.tbl_CodeFile.Find(id);
            if (codefile == null)
            {
                return HttpNotFound();
            }
            return View(codefile);
        }
        //
        // POST: /CodeFile/Delete/5
        [HttpPost, ActionName("Delete")]
        public ActionResult DeleteConfirmed(int id)
        {
            CodeFile codefile = db.tbl_CodeFile.Find(id);
            db.tbl_CodeFile.Remove(codefile);
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}

为什么我的ASP.NET MVC无法将数据插入数据库

将构造函数添加到CodeFileDBContext类:

例如:

public CodeFileDBContext() : base("Name=CodeFileDBContext")
{
    var adapter = (IObjectContextAdapter)this;
    var objectContext = adapter.ObjectContext;
    objectContext.CommandTimeout = 30; // value in seconds
}
DbContext基类接受连接字符串名称作为参数。尝试通过CodeFileDBContext 传递连接字符串名称

你能给我们更多的细节吗,你得到的确切错误是什么?您应该检查的另一件事是,模型中的每个数据成员在该特定表中都有自己的列。如果它们的名称不完全匹配,请使用"Column"属性。例如,如果它们不匹配,请尝试:

[Column("Table_Id")] 
public int ID { get; set; }

如果它们都匹配,请添加"Table"属性,这以前对我有很多帮助。

[Table("YourTableName")]
{
public class CodeFile....
}