2014-09-19 60 views
-2

我使用ASP.NET MVC创建了一个小型网站,但它无法从数据库创建新的,编辑或删除数据。数据只显示在网页上,但是当我在SQL中使用SELECT *命令时,数据不显示。为什么我的ASP.NET MVC无法将数据插入到我的数据库中?

我在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); 
     } 
    } 
} 
+0

你获得详细信息页面的数据? – 2014-09-19 08:18:22

回答

0

DbContext基类接受连接字符串名称作为参数。尝试通过连接字符串名称通过CodeFileDBContext

+0

嗨。我已经在连接字符串中使用它“name =”CodeFileDBContext“” – 2014-09-19 07:32:14

+0

对不起,我没有注意到,你有任何异常尝试张贴,如果你有一个。 – meetkichu 2014-09-19 07:41:43

+0

我使用数据eplorer来测试从我的网站到数据库的连接,并且工作正常。我创建新的数据,它在网站视图上的列表,但它不是更新数据库时使用SQL管理工具来查看我的表数据中的数据 – 2014-09-19 07:44:58

1

添加构造你的CodeFileDBContext类:

例如像这样:

public CodeFileDBContext() : base("Name=CodeFileDBContext") 
{ 
    var adapter = (IObjectContextAdapter)this; 
    var objectContext = adapter.ObjectContext; 
    objectContext.CommandTimeout = 30; // value in seconds 
} 
0

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

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

如果它们都匹配,添加“表”属性,它以前多次帮助了我。

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

我连接到数据库中的错误表原因是问题。 – 2014-09-19 09:16:02

相关问题