2008-10-09 4 views
49

Я нахожу это странным, что в Visual C# 2008 Express Edition, при использовании проводника базы данных, ваши варианты:Подключение к SQL Server с Editions Visual Studio Express

  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#).

+0

Это потрясающий вопрос. Весь беспорядок в SQL Server очень расстраивает, даже выбрав версию, которая будет использоваться для разработки с ней для ее развертывания. Этот вопрос затрагивает одну из главных проблем на этом пути. – dotancohen 2012-02-27 18:32:55

+0

Как это закрыто как «не конструктивное»? У этого есть тонны upvotes и взглядов, и много людей, кажется, считают это полезным. SO закрывает вопросы слишком легко в наши дни. – Jez 2014-08-11 12:16:15

ответ

20

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

Я думаю, что рассуждение позади этих выборов дб вероятно идет что-то вроде этого:

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

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

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

К сожалению, теперь, когда мы находимся в VS2010, нет «стандартного» издания ... самый низкий уровень - это Pro, который составляет более $ 1k. Боль, когда я просто пытаюсь прототипировать что-то против базы данных сервера. – 2010-08-17 13:24:23

2

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

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

2

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

2

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

21

Обход:

  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.

Update

Решение для Visual Studio Express 2010

2

Я только что произошло, начал свой домашний бизнес-приложения в окна формы для удобства. В настоящее время я использую 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-серверу сейчас :).

EDIT:

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

 Смежные вопросы

  • Нет связанных вопросов^_^