Интранет-форма с использованием ASP.NET MVC и Access

Я новичок в веб-программировании, и меня попросили создать веб-форму, которая будет размещена на внутреннем сайте компании. Форма будет использоваться для отправки данных в серверную базу данных.

Моя проблема в том, что база данных была разработана с использованием MS Access 2007. Хотя я хотел бы использовать ASP.NET MVC 3, я не уверен, что смогу использовать MS Access для этого в качестве внутренней базы данных. Большинство примеров, которые я нашел, связаны с SQL Server (контекст данных), и я понимаю, что это лучший способ сделать это.

Моя проблема в том, что из-за ограничений по времени я не смогу в настоящее время перевести эту базу данных на SQL. Было проделано много работы по созданию таких вещей, как формы, отчеты и т. д. в базе данных Access, которые у меня пока нет времени воспроизвести в .Net.

Может ли кто-нибудь дать мне несколько советов о том, какой метод лучше всего подходит для создания формы ввода данных в интрасети в краткосрочной перспективе.

Я постараюсь обновить весь проект, когда будет время.


person Derek    schedule 25.06.2012    source источник
comment
нет причин, по которым вы должны использовать MSSql в качестве модели. Просто MS Sql намного лучше, чем MS Access. Какие технологии доступа к данным вы предпочитаете? ADo.Net, Enity framework, что-то еще?   -  person Liam    schedule 25.06.2012
comment
Спасибо, я знаком с ADO.Net, я пойду с этим. Спасибо   -  person Derek    schedule 25.06.2012


Ответы (3)


Вы должны иметь возможность просто добавить строку подключения Access в файл web.config и вместо этого использовать эту БД.

<connectionStrings>
    <add name="MyConn" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|name_of_db.accdb;" providerName="System.Data.OleDb" />
</connectionStrings>

Model-View-Controller — это шаблон проектирования программного обеспечения, относящийся к разделению интерфейса и логики.

person Vok    schedule 25.06.2012

Вы по-прежнему можете использовать MVC с MS Access. Вы можете использовать класс OLEDBConnection, однако я бы порекомендовал вам использовать ORM, например NHibernate, который поддерживает подключение к Access (учебник описан ниже).

Позже вы можете просто сопоставить все сопоставления NHibernate с SQL Server и переключить строку подключения, которая будет указывать на вашу новую базу данных SQL Server, а не MS Access.

Связывание MS Access с NHibernate:

http://www.thoughtproject.com/Snippets/NHibernateWithAccess/

Подключение к MS Access через OLEDB:

http://msdn.microsoft.com/en-us/library/5ybdbtte(v=vs.71).aspx

person Darren    schedule 25.06.2012

// C#
public void ConnectToAccess()
{
    System.Data.OleDb.OleDbConnection conn = new 
        System.Data.OleDb.OleDbConnection();
    // TODO: Modify the connection string and include any
    // additional required properties for your database.
    conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
        @"Data source= C:\Documents and Settings\username\" +
        @"My Documents\AccessFile.mdb";
    try
    {
        conn.Open();
        // Insert code to process data.
    }
        catch (Exception ex)
    {
        MessageBox.Show("Failed to connect to data source");
    }
    finally
    {
        conn.Close();
    }
}

Дополнительные сведения см. в MSDN.

person Jonny    schedule 25.06.2012