2009-07-13 21 views
20

Tworzę aplikację, która będzie instalowana i uruchamiana na wielu komputerach, moim celem jest utworzenie pustego lokalnego pliku bazy danych, który jest instalowany wraz z aplikacją, a kiedy użytkownik korzysta z aplikacji jego baza danych do wypełnienia danymi z aplikacji. można dostarczyć mi następujące przykłady:Lokalna baza danych, potrzebuję przykładów

  1. co muszę zrobić, więc moja aplikacja może połączyć się z lokalnej bazy
  2. jak wykonać zapytanie ze zmiennych z aplikacji, na przykład jak byś dodać do bazy następującą rzecz

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

i etc Edit :: używam "lokalną bazę danych" cr pochodzi z "dodaj> nowy element> Lokalna baza danych", więc jak mógłbym się z tym połączyć? Przepraszamy za niemych pytanie .. I nigdy nie używane baz danych w .NET

+0

Do jakiego typu bazy danych się łączysz? – ddc0660

+0

Zastanawiam się nad użyciem lokalnego pliku .sdf. – Aviatrix

+0

Zaktualizowałem moją odpowiedź w odpowiedzi na to, że spesyfikowałeś używając .sdf (Sql Ce/Sql Compact) –

Odpowiedz

22

W zależności od potrzeb można również rozważyć Sql CE. Jestem pewien, że jeśli określiłeś bazę danych, której chcesz użyć, lub Twoje wymagania, jeśli chcesz korzystać z prawidłowych i rzeczywistych przykładów ciągów połączeń, itp.

Edytuj: Oto kod 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(); 
    } 

Pamiętaj, aby dodać odwołanie do System.Data.SqlServerCe

+3

tylko FYI: SQL CE to SQL Compact to SQL Mobile - CE oznacza lekko nieaktualną wersję; najnowsza (edycja 2008) nazywa się po prostu SQL Compact, podczas gdy SQL CE (Compact Edition) to generacja 2005. – STW

+1

Zarówno połączenie, jak i moduł danych powinny znajdować się w blokach 'using'. –

0

za 1)

Najprostszym sposobem, aby zapewnić tę funkcjonalność poprzez SQL Server Express User Instances. SQL Server Express jest bezpłatny, więc użytkownik nie musi płacić dodatkowej licencji dla SQL Server, a instancja użytkownika jest oparta na plikach, co odpowiada twoim wymaganiom.

Dla 2)

To jest duży temat. Możesz przejść przez niektóre tutorials from Microsoft aby uzyskać poczucie jak połączyć się z DB, itd

+6

Dla 1): ** Nie! ** To bardzo rzadko, że powinieneś używać Expressu Edycja dla bazy danych dla pojedynczego użytkownika. Zamiast tego należy użyć silnika w procesie, takiego jak Sql Server Compact Edition, Sqlite, a nawet Access. –

+0

Chodzi mi o to, że jest to najprostszy sposób (może nie być najlepszym sposobem). Osobiście nigdy nie korzystałem z żadnego silnika DB-in-proc. Jeśli te silniki są rzeczywiście tak łatwe w użyciu (i mają ten sam poziom wsparcia) co SQL Server, to będę się poprawiał. –

+2

Zwykle są łatwiejsze do wdrożenia (obsługa xcopy dla zupełnie nowej maszyny), prawie tak łatwe do opracowania (musisz zainstalować sdk na swoim dev boxie, ale nadal będą postępować zgodnie z tym samym modelem dostawcy danych co serwer sql) i mają dużo więcej wygody, ponieważ nie wymagają uruchamiania serwera sql w tle, nawet gdy aplikacja jest wyłączona. –

6

Wygląda na to, że jesteś:

  • szklarstwa app C#, które będą instalowane i uruchamiane na wielu komputery
  • -To musi lokalnej bazy danych (i 'm zakładając RDBMS)
  • -Musisz wygenerować pustą bazę danych w instalacji
  • -Ty następnie trzeba być w stanie połączyć się z bazą danych i zapełnij go, gdy aplikacja działa.

Ogólnie wydaje się, że trzeba przeczytać na temat korzystania z małego silnika bazy danych dla aplikacji. Zacznę od sprawdzenia SQLite, szczególnie jeśli potrzebujesz funkcji multi-OS (np. Twój program C# będzie działał w środowisku Microsoft .NET Framework i Novell's Mono). Istnieją owijarki C# do uzyskiwania dostępu do bazy danych SQLite.

+1

@Lou Franco - Dzięki za edycję gramatyki. –

1

Co myślisz jako baza danych? Z tego, co podałeś w swoim pytaniu, polecam SQLite.

można uzyskać przykładowy kod z ich strony Sqlite.NET

11

nie widzę nikogo sugerujące SQL Compact; jest podobny do SQLite, ponieważ nie wymaga instalacji i dostosowań do niskiej bazy danych. Wyrosła z SQL Mobile i jako taka ma niewielkie rozmiary i ograniczony zestaw funkcji, ale jeśli znasz ofertę Microsoft SQL, powinna ona być trochę znana.

SQL Express to kolejna opcja, ale należy pamiętać, że wymaga samodzielnej instalacji i jest nieco bardziej skomplikowany, niż może być potrzebny do lokalnej pamięci podręcznej aplikacji. To powiedziawszy, że jest również nieco potężniejsze niż SQL Compact lub SQLite.

+0

Oto strona SQL Compact; to naprawdę dość solidna mała baza danych, zwłaszcza, że ​​jest lekka. http://www.microsoft.com/sqlserver/2008/en/us/compact.aspx – STW

4

wierzę, że to pytanie jest o "Database Local" szablon elementu Visual Studio:

alt text