Локальная база данных, мне нужно несколько примеров - PullRequest
20 голосов
/ 14 июля 2009

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

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

    String abc = "ABC";
    String BBB = "Something longer than abc";
    

и т. Д. Редактировать :: Я использую «локальную базу данных», созданную из «добавить> новый элемент> Локальная база данных», так как мне подключиться к этому? Извините за глупый вопрос .. я никогда не использовал базы данных в .net

Ответы [ 7 ]

22 голосов
/ 14 июля 2009

В зависимости от потребностей вы также можете рассмотреть Sql CE. Я уверен, что если вы укажете базу данных, которую вы планируете использовать, или ваши требования, если вы уверены, что получите правильные и реальные примеры строк подключения и т. Д.

Редактировать: вот код для SqlCe / Sql Compact

    public void ConnectListAndSaveSQLCompactExample()
    {
        // Create a connection to the file datafile.sdf in the program folder
        string dbfile = new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).DirectoryName + "\\datafile.sdf";
        SqlCeConnection connection = new SqlCeConnection("datasource=" + dbfile);

        // Read all rows from the table test_table into a dataset (note, the adapter automatically opens the connection)
        SqlCeDataAdapter adapter = new SqlCeDataAdapter("select * from test_table", connection);
        DataSet data = new DataSet();
        adapter.Fill(data);

        // Add a row to the test_table (assume that table consists of a text column)
        data.Tables[0].Rows.Add(new object[] { "New row added by code" });

        // Save data back to the databasefile
        adapter.Update(data);

        // Close 
        connection.Close();
    }

Не забудьте добавить ссылку на System.Data.SqlServerCe

11 голосов
/ 14 июля 2009

Я не вижу никого, кто предлагал бы SQL Compact; он похож на SQLite тем, что не требует установки и адаптации к низкоуровневой базе данных. Он вырос из SQL Mobile и поэтому имеет небольшую площадь и ограниченный набор функций, но если вы знакомы с предложениями Microsoft по SQL, у него должно быть некоторое знакомство.

SQL Express - это еще один вариант, но имейте в виду, что он требует автономной установки и немного сложнее, чем может потребоваться для локального кэша приложения. Тем не менее, он также немного более мощный, чем SQL Compact или SQLite.

6 голосов
/ 14 июля 2009

Похоже, вы:

  • - Создание приложения на C #, которое будет установлено и запущено на нескольких компьютеры
  • - для этого нужна локальная база данных (я предполагаю, что СУБД)
  • -Вы должны создать пустую базу данных при установке
  • -Ты тогда должен иметь возможность подключиться к базе данных и заполнить ее, когда приложение работает.

В общем, кажется, что вам нужно ознакомиться с использованием небольшого ядра базы данных для приложений. Я бы начал с проверки SQLite , особенно если вам нужна поддержка нескольких ОС (например, ваша программа на C # будет работать на платформе Microsoft .NET Framework и Novell Mono). Существуют оболочки C # для доступа к базе данных SQLite.

4 голосов
/ 14 июля 2009

Мне кажется, что этот вопрос касается шаблона элемента «Локальная база данных» в Visual Studio:

alt text

1 голос
/ 14 июля 2009

Не уверен, что я полностью понимаю, о чем вы спрашиваете, но Sqlite - это хороший вариант для облегченного хранения локально развернутой базы данных. Посмотрите здесь:

http://www.sqlite.org/

и здесь для поставщика ADO.NET ..

http://sqlite.phxsoftware.com/

1 голос
/ 14 июля 2009

Что вы рассматриваете в качестве базы данных? Из того, что вы указали в своем вопросе, я бы предложил SQLite.

Вы можете получить образец кода с их сайта Sqlite.NET

0 голосов
/ 14 июля 2009

для 1)

Самый простой способ предоставить эту функцию - через Пользовательские экземпляры SQL Server Express . SQL Server Express является бесплатным, поэтому вашему пользователю не нужно платить дополнительную лицензию на SQL Server, а пользовательский экземпляр основан на файлах, что соответствует вашим требованиям.

Для 2)

Это большая тема. Возможно, вы захотите просмотреть некоторые из руководств от Microsoft , чтобы понять, как подключиться к БД и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...