Подключение к SQL Server с помощью Visual Studio Express Editions

Мне кажется странным, что в Visual C# 2008 Express edition, когда вы используете проводник базы данных, ваши варианты:

  1. Microsoft Access
  2. SQL Server Compact 3.5 и
  3. Файл базы данных SQL Server.

НО, если вы используете Visual Web Developer 2008 Express, вы можете подключиться к обычному SQL Server, Oracle, ODBC и т. д.

Для людей, разрабатывающих командную строку или другие приложения C#, которым необходимо взаимодействовать с базой данных SQL Server, действительно ли вам нужно создавать код LINQ / Data Access с одной IDE (Visual Web Developer), а вашу программу - с другой (Visual C#)?

Это не сложный обходной путь, но кажется странным. Если Microsoft хотела заставить вас перейти на Visual Studio для подключения к SQL Server, зачем им включать эту функцию в одну из своих бесплатных IDE, а не в другую? Мне кажется, что я чего-то упускаю (например, как все это сделать в Visual C#).

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

dotancohen 27.02.2012 22:32

Как это закрыто как «неконструктивное»? У него множество положительных отзывов и просмотров, и многие люди, кажется, находят его полезным. В настоящее время SO слишком легко закрывает вопросы.

Jez 11.08.2014 16:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
49
2
100 238
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Я предполагаю, что с VWD ваши решения с большей вероятностью будут развернуты на сторонних серверах, многие из которых не позволяют динамически прикреплять файл базы данных SQL Server. Таким образом разрешается другой тип подключения.

Это различие в поведении IDE - одна из основных причин обновления до полной версии.

Ответ принят как подходящий

У вас должна быть возможность выбрать параметр файла базы данных SQL Server, чтобы получить правильный тип базы данных (поставщик system.data.SqlClient), а затем вручную исправить строку подключения, чтобы она указывала на вашу базу данных.

Я думаю, что причина этого выбора db, вероятно, выглядит примерно так:

  • Если вы используете Express Edition и нет используете Visual Web Developer, вы, вероятно, создаете настольную программу.
  • Если вы создаете настольную программу и используете экспресс-версию, вы, вероятно, любитель или пользователь пользовательского интерфейса, работающий дома, а не занимающийся разработкой для корпорации.
  • Если вы разрабатываете не для корпорации, ваше приложение, вероятно, предназначено для конечного пользователя, и ваше хранилище данных, вероятно, находится на их локальном компьютере.
  • Вам действительно не следует развертывать базы данных серверный класс на рабочих столах конечных пользователей. База данных в процессе, такая как Sql Server Compact или MS Access, гораздо более уместна.

Однако эта логика не совсем верна. Даже если каждый из этих 4 пунктов верен в 90% случаев, к тому времени, когда вы примените все четыре из них, он будет применяться только к ~ 65% вашей аудитории, что означает, что до 35% рынка экспресс-доставки могут законно захотеть поговорить. к БД серверного класса, и это значительная группа. Итак, упрощенная (жадная) версия:

  • Настоящий сервер баз данных (и оборудование для его запуска) стоит реальных денег. Если у вас есть доступ к этому, вы должны иметь возможность позволить себе хотя бы стандартную версию Visual Studio.

К сожалению, сейчас, когда мы находимся на VS2010, не существует "стандартной" версии ... самый низкий уровень - Pro, который стоит более 1000 долларов. Боль, когда я просто пытаюсь создать прототип для базы данных сервера.

Scott Whitlock 17.08.2010 17:24

В качестве обходного пути вы создаете временный файл базы данных только для того, чтобы пропустить диалог? Как вы "вручную исправляете" строку подключения? Разве он не хранится в разных местах (app.config, файл dbml и т. д.)? Также, если вы это сделаете, это позволит вам использовать конструктор linq to sql?

User 13.01.2011 00:30

Если вы используете это, чтобы получить LINQ to SQL, который я делаю и хотел для своего Visual Developer, 1) получите бесплатный Visual WEB Developer, используйте его для подключения к экземпляру SQL Server, создайте интерфейс LINQ, затем скопируйте сгенерированные файлы в ваш проект Vis-Dev (я не использую VD, потому что это звучит забавно). Включите только файлы * .dbml. Среде Vis-Dev потребуется секунда или две, чтобы распознать вспомогательные файлы. Это немного лишний шаг, но наверняка лучше, чем делать его вручную или отказываться от него вообще или ДАЖЕ ХУЖЕ, платить за него. Муо-ха-ха-ха-ха.

Единственный способ заставить C# Express 2008 работать - это переместить файл базы данных. Итак, я открыл SQL Server Management Studio и, отбросив базу данных, скопировал файл в папку своего проекта. Затем я повторно подключил базу данных к студии управления. Теперь, когда я пытаюсь прикрепить к локальной копии, она работает. Судя по всему, вы не можете использовать один и тот же файл базы данных более одного раза.

Обходной путь:

  1. Откройте свое решение в Visual Web Developer Express. Он не загрузит некоторые проекты в решение, но это нормально.
  2. Установите новое соединение в обозревателе баз данных с требуемой базой данных из SQL Server.
  3. Добавьте новый проект библиотеки классов.
  4. Добавьте элемент LINQ to SQL Classes и свяжите его со своей базой данных.
  5. Закройте раствор.
  6. Откройте решение в Visual C# Express.

Теперь у вас есть библиотека классов LINQ to SQL, связанная с вашей базой данных SQL Server в Visual C# Express.

Обновлять

Решение предназначено для Visual Studio Express 2010.

Это работает с линейкой продуктов Visual Studio 2010 Express (Visual C# и Visual Web Developer). Спасибо

GlobalCompe 13.03.2011 10:35

Я выдергивала волосы два дня, пытаясь понять это. Спасибо! Я должен тебе выпить по твоему выбору, если мы когда-нибудь встретимся!

Pete Mancini 27.01.2012 05:13

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

AJ. 04.09.2012 00:39

Я просто случайно запустил свое приложение для домашнего бизнеса в формах Windows для удобства. В настоящее время я использую Visual C# Express 2010 / SQL Server 2008 R2 Express для его разработки. У меня та же проблема, что и у OP, когда мне нужно подключиться к экземпляру SQL-сервера. Я пропускаю подробности здесь, но эта база данных будет объединенной базой данных, синхронизированной между 2-3 компьютерами, которые также будут использовать приложение, которое я разрабатываю прямо сейчас.

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

Я скопировал вставленное соединение SQL, которое я использовал в другом проекте на работе (VS2010 Premium) в app.config, и изменил все, что мне было нужно там. Когда я вернулся к своим Settings.settings, мне просто нужно было подтвердить, что мне нужно то, что было внутри файла app.config. Единственные недостатки, которые я вижу, это то, что вы не можете «протестировать» соединение, поскольку, когда вы входите в конфигурацию строки подключения, вы никуда не можете перейти, поскольку «SQL Server» не является вариантом. Другой недостаток заключается в том, что вам нужно вводить все вручную, так как вы не можете использовать никаких мастеров, чтобы это работало.

Не знаю, следовало ли мне так поступать, но, по крайней мере, теперь я могу подключиться к моему SQL-серверу :).

РЕДАКТИРОВАТЬ :

Он работает только с экземплярами SQL Server 2008 R2 Express. Если вы попробуете использовать SQL Server 2008 R2 Workgroup и выше, вы получите неприятное предупреждение от Visual C# 2010 Express о том, что «вы не можете использовать это соединение с текущей версией Visual Studio». Я получил это, когда пытался изменить некоторые из своих адаптеров таблиц. Я снова переключился на экземпляр SQL Express для разработки, и он снова работает нормально.

Другие вопросы по теме