Łączenie się z serwerem SQL przy użyciu wersji Visual Studio Express [zamknięte]

Wydaje mi się dziwne, że w Visual C# 2008 Express edition, kiedy używasz Eksploratora baz danych, masz następujące opcje:

  1. Microsoft Access
  2. SQL Server Compact 3.5 i
  3. Plik bazy danych SQL Server.

Ale jeśli używasz Visual Web Developer 2008 Express, możesz połączyć się ze zwykłym serwerem SQL, Oracle, ODBC itp.

Dla osób, które rozwijają wiersz poleceń lub inne aplikacje C#, które muszą rozmawiać z bazą danych SQL Server, czy naprawdę musisz zbudować swój LINQ / kod dostępu do danych z jednym IDE (Visual Web Developer) a Twoim programem w innym (Visual C#)?

To nie jest trudne obejście, ale wydaje się dziwne. Jeśli Microsoft chciał zmusić cię do uaktualnienia do Visual Studio, aby połączyć się z SQL Server, dlaczego miałby włączyć tę funkcję w jednym ze swoich darmowych IDE, a nie w drugim? Wydaje mi się, że czegoś mi brakuje (jak zrobić to wszystko w Visual C#).

Author: p.campbell, 2008-10-10

6 answers

Powinieneś być w stanie wybrać opcję Pliku bazy danych SQL Server, aby uzyskać odpowiedni rodzaj bazy danych (Dostawca system.data.SqlClient), a następnie ręcznie skorygować ciąg połączenia, aby wskazywał na Twój db.

Myślę, że rozumowanie stojące za tymi wyborami db prawdopodobnie idzie mniej więcej tak:

  • Jeśli używasz edycji Express, a nie używasz Visual Web Developer, prawdopodobnie budujesz program komputerowy.
  • jeśli budujesz program desktopowy, a korzystasz z edycji express, prawdopodobnie jesteś hobbystą lub uISV-er pracującym w domu, a nie robiącym rozwój dla korporacji.
  • Jeśli nie tworzysz aplikacji dla korporacji, Twoja aplikacja jest prawdopodobnie przeznaczona dla użytkownika końcowego, a Twój magazyn danych prawdopodobnie działa na ich lokalnej maszynie.
  • naprawdę nie powinieneś instalować baz danych klasy serwerowejna pulpitach użytkowników końcowych. Db in-process jak SQL Server Compact lub MS Access to znacznie więcej odpowiednie.

Jednak ta logika nie trzyma się kupy. Nawet jeśli każdy z tych 4 punktów jest prawdziwy 90% czasu, do czasu zastosowania wszystkich czterech z nich dotyczy to tylko ~65% odbiorców, co oznacza, że do 35% rynku ekspresowego może legalnie chcieć porozmawiać z db klasy serwerowej, a to znacząca grupa. I tak uproszczona (chciwa) Wersja:

    [6]}prawdziwy serwer db (i sprzęt do jego uruchomienia) kosztuje prawdziwe pieniądze. Jeśli masz do tego dostęp, powinieneś aby móc sobie pozwolić na co najmniej standardową edycję visual studio.
 20
Author: Joel Coehoorn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-08 14:07:44

Obejście:

  1. Otwórz swoje rozwiązanie w Visual Web Developer Express. Nie załaduje niektórych projektów w rozwiązaniu, ale jest ok.
  2. Utwórz nowe połączenie w Eksploratorze bazy danych z wymaganą bazą danych z serwera SQL.
  3. Dodaj nowy projekt biblioteki klas.
  4. Dodaj element LINQ do klasy sql i połącz go z bazą danych.
  5. Zamknij rozwiązanie.
  6. Otwórz rozwiązanie w Visual C # Express.

Teraz masz klasy LINQ do SQL biblioteka powiązana z bazą danych SQL Server w Visual C # Express.

Update

Rozwiązanie jest dla Visual Studio Express 2010.

 21
Author: Sergey Shandar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-07 01:20:51

Domyślam się, że dzięki VWD Twoje rozwiązania będą częściej wdrażane na serwerach innych firm, z których wiele nie pozwala na dynamicznie dołączany plik bazy danych SQL Server. W ten sposób zezwalanie na inny typ połączenia.

Ta różnica w zachowaniu IDE jest jednym z kluczowych powodów aktualizacji do pełnej wersji.

 2
Author: Mitchel Sellers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-09 20:05:09

Jeśli używasz tego, aby uzyskać LINQ do SQL, co robię i chciałem dla mojego programisty Visual, 1) Pobierz darmowy Visual Web Developer, użyj tego, aby połączyć się z instancją SQL Server, utworzyć interfejs LINQ, a następnie skopiować wygenerowane pliki do projektu Vis-Dev (nie używam VD, ponieważ brzmi to zabawnie). Dołącz tylko *.pliki dbml. Środowisko Vis-Dev zajmie sekundę lub dwie, aby rozpoznać pliki pomocnicze. Jest to trochę dodatkowy krok, ale na pewno lepiej niż zrobić to ręcznie lub dając w ogóle, albo co gorsza, płacąc za to. Mooo ha ha haha.

 2
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-11 23:17:53

Jedynym sposobem na uruchomienie C # Express 2008 było przeniesienie pliku bazy danych. Otworzyłem więc SQL Server Management Studio i po zrzuceniu bazy danych skopiowałem plik do folderu mojego projektu. Następnie ponownie podłączyłem bazę danych do studia zarządzania. Teraz, kiedy próbuję dołączyć do lokalnej kopii to działa. Najwyraźniej nie można użyć tego samego pliku bazy danych więcej niż raz.

 2
Author: Z.K.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-17 20:49:44

Właśnie dla wygody uruchomiłem aplikację home business w windows forms. Obecnie używam Visual C# Express 2010 / SQL Server 2008 R2 Express do jego rozwijania. Mam ten sam problem co OP gdzie muszę połączyć się z instancją SQL server. Pomijam tutaj szczegóły, ale ta baza danych będzie scaloną bazą danych zsynchronizowaną między 2-3 komputerami, które również będą korzystać z aplikacji, którą właśnie opracowuję.

Znalazłem szybkie obejście, przynajmniej myślę, że zrobiłem, ponieważ jestem teraz w stanie korzystać z moich procedur przechowywanych w tableadapters bez żadnych problemów do tej pory.

Skopiowałem wklejone połączenie SQL, którego użyłem w innym projekcie w pracy (VS2010 Premium) w aplikacji.config i zmieniłem wszystko, czego tam potrzebowałem. Kiedy wróciłem do swoich ustawień.ustawienia, musiałem tylko potwierdzić, że chcę to, co było w aplikacji.plik konfiguracyjny. Jedyne minusy jakie widzę to to, że nie można" przetestować " połączenia od kiedy wchodzi się w konfigurację łańcuch połączenia nie możesz nigdzie iść, ponieważ "SQL Server" nie jest opcją. Drugą wadą jest to, że musisz wprowadzić wszystko ręcznie, ponieważ nie możesz użyć żadnych kreatorów, aby to działało.

Nie wiem, czy powinienem to zrobić w ten sposób, ale przynajmniej mogę teraz połączyć się z moim serwerem SQL:).

EDIT:

Działa tylko z instancjami SQL Server 2008 R2 Express. Jeśli spróbujesz z SQL Server 2008 R2 Workgroup i up, otrzymasz paskudne ostrzeżenie z Visual C# 2010 Express mówi ci, że "nie możesz używać tego połączenia z bieżącą wersją Visual Studio". Dostałem to, gdy próbowałem zmodyfikować niektóre z moich tableadapters. Przełączyłem się z powrotem na instancję SQL Express, aby ją rozwinąć i znowu działa dobrze.

 2
Author: Tribalinius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-01 19:32:48