14

programmming tarafından ben ms erişim veri almak ve bir MVC deseni İşteİthalat Ms Access Veri


herhangi Modeli bağlamak için bir iyi bir yaklaşım arayışı içindeyim şu düşünüyorsun yaklaşımdır

Yaklaşım 1:

  • Açık Ms Erişim dosya
  • Açık veritabanı
  • açın tüm tabloları
  • İthalat tüm tabloların veri ve modele onları bağlayan
  • kapatın tüm tabloları
  • Kapat veritabanı
  • Kapat dosya

Yaklaşım 2:

  • Bağlan ASP.NET MVC'deki Ms Access Veritabanları
  • Veritabanını aç
  • bir sorgu
  • veri almaya ve bunun
  • yakın veritabanı

Hangi yaklaşım daha iyidir modellemek bağlanan ve bunu uygulamak nasıl geçer?

GÜNCELLEME: Ben Yaklaşım 2 ve çalışmalarını para cezası uygulanan , herkes ne yapmalıyım tabloya göre sizin modeli oluşturmak olduğunu Yaklaşımı 1

+0

"size kalmış. Google'da bazı bilgileri kesinlikle bulabilirsiniz. Bir şey deneyin ve herhangi bir hata oluşursa veya bazı durumlarda takılırsa bir soru yayınlayın. Sonra insanlar size yardım etmek için daha hevesli olabilir. – chamara

+0

"içe aktarma verileri" dediğinizde - onu neye aktarıyorsunuz? farklı bir veritabanı? 1 yaklaşmak yukarıdaki bağlamıyla – StanK

+0

@StanK İthalat verileri Access veritabanından tüm verileri kopyalayıp bir merkezi veritabanı ihtiyaç [ASP.NET MVC mimarisi] –

cevap

0

nasıl uygulanacağı biliyor. Bu nedenle model sınıfı, tablo alanlarınıza karşılık gelen özelliklere sahip olmalıdır. Daha sonra Modele ihtiyacınız olduğunda, DB'yi tekrar sorgulamanız ve modelin özelliklerini buna göre doldurmanız gerekir.

1

Her iki yaklaşım da veritabanınıza bağlanmanızı ve içeriği modelinize göre eşleştirmenizi gerektirir. Bazı veriler görüntülemem gerektiğinde, veritabanına bağlanıp belirli içerikleri kopyaladığımda, Approach 1'in web uygulaması başlatıldığını ve tüm veritabanı içeriklerini belleğe kopyalayıp oradan 've Approach 2'nin varsa erişime eriştiğini' varsayıyorum. benim modelime '.

Böyle bir durum söz konusu ise, Yaklaşım 2 önerilir (ve bunu yaptığınızı belirttiniz, her şey yolunda).

Yaklaşım 1 küçük boyutlu veritabanları için ok-ish çalışabilir ama olabilir: veritabanı

  • sağlar

    • Sen gevşek tüm [asit] [1] -y iyilik Sizin küresel toplama değişkenleri ile sıkışmış - web uygulamalarında en sevilen kavram değil
    • Tüm veritabanını gereksiz yere belleğe aldınız.web uygulamalarında Kişisel yavaş noktası genellikle ağ, sen yaklaşımı biri (önerilmez kalksak bir şey tarayıcıyı

    ulaşmak için sizin html geçen süre ile karşılaştırılır gerekli verilerin yüklenmesi birkaç milisaniye senin denetleyicileri içinde sonra

    public class MvcApplication : System.Web.HttpApplication { 
    
    public static List<MyTable1> globalTable1; 
    public static List<MyTable2> globalTable2; 
    
    protected void Application_Start() { 
        AreaRegistration.RegisterAllAreas(); 
        WebApiConfig.Register(GlobalConfiguration.Configuration); 
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
        RouteConfig.RegisterRoutes(RouteTable.Routes); 
        BundleConfig.RegisterBundles(BundleTable.Bundles); 
    
        var DatabaseMagic = new DatabaseAccessClass("a:\path\to\database.mdb"); 
        globalTable1 = DatabaseMagic.getDataForTableOne(); //However you do your loading and mapping 
        globalTable2 = DatabaseMagic.getDataForTableTwo(); //ditto 
    } 
    

    :, yapmayın, bir kedi yavrusu) bu kod her çalıştırıldığında zarar, o zaman en kolay yolu global.asax.cs dosyasında böyle bir şey var olacaktır

    public ActionResult Index() 
        { 
         return View(MvcApplication.globalTable1); 
        } 
    

    Ve görünümü:

    @model List<MvcApplication1.MvcApplication.MyTable1> 
    @{ 
        ViewBag.Title = "Index"; 
    } 
    <h2>Blah</h2> 
    <ul> 
    @foreach (var i in Model) { 
        <li>@i.idField - @i.contentField </li> 
    } 
    </ul> 
    

  • 0

    Ben 1.

    o Erişim kullanmak için bir gereklilik midir Yaklaşım anlaşılmış değildi (ben bunu yapmayın bahsetti mi?)? Dosya tabanlı veritabanı (Access gibi) ile çok fazla sorun olduğunu gördüm, böylece SQL Server'a veya Access'ten başka bir veritabanına tüm verileri daha iyi içe aktarın ve sonra 2. seçeneği kullanın.

    Veritabanınız zaten oluşturulduğu gibi Bağlamak için Entity Framework veritabanı ilk yaklaşımı.

    1

    Kullanım Varlık Framework.Create ViewModel haritaya.

    0

    System.Data.OleDb kullanarak eklemeniz gerekir; Üstbilgisinde dosya Ve bu Sağlayıcı = Microsoft.ACE.OLEDB.12.0 ekleyin; DataSource = | DataDirectory | \ myAccessFile.mdb; Persist Güvenlik Bilgisi = Yanlış; Bağlantı dizesi kullanımı bağlantı dizesinde hat OleDbCommand, OleDbConnection

    ve ms-erişimini sadece sql sorgusu gibi sorgu kullanarak
    güncelleme ms-access veritabanı getirme ikinci yaklaşım ve "Bunu uygulamak nasıl giderdim

    İlgili konular