【问题标题】:Connecting to SQL Server with Visual Studio Express Editions [closed]使用 Visual Studio Express Editions 连接到 SQL Server [关闭]
【发布时间】:2008-10-09 20:00:36
【问题描述】:

我觉得奇怪的是,在 Visual C# 2008 Express 版本中,当您使用数据库资源管理器时,您的选择是:

  1. 微软访问
  2. SQL Server Compact 3.5 和
  3. SQL Server 数据库文件。

但是如果您使用 Visual Web Developer 2008 Express,您可以连接到常规的 SQL Server、Oracle、ODBC 等。

对于开发需要与 SQL Server 数据库通信的命令行或其他 C# 应用程序的人来说,您真的需要使用一个 IDE(Visual Web 开发人员)构建您的 LINQ/数据访问代码,而您的程序在另一个(Visual C#)?

这不是一个很难的解决方法,但它看起来很奇怪。如果 Microsoft 想要强制您升级到 Visual Studio 以连接到 SQL Server,为什么他们会在他们的一个免费 IDE 中包含该功能,而不是另一个?我觉得我可能遗漏了一些东西(比如如何在 Visual C# 中完成这一切)。

【问题讨论】:

  • 这是一个了不起的问题。整个 SQL Server 混乱非常令人沮丧,从甚至选择使用哪个版本到实际使用它进行开发再到部署它。这个问题解决了沿途的主要麻烦之一。
  • 如何以“不具建设性”的方式关闭?它有大量的支持和观点,很多人似乎觉得它很有帮助。 SO现在太容易结束问题了。

标签: c# visual-studio-2008 visual-web-developer


【解决方案1】:

您应该能够选择 SQL Server 数据库文件选项来获取正确类型的数据库(system.data.SqlClient 提供程序),然后手动更正连接字符串以指向您的数据库。

我认为这些数据库选择背后的原因可能是这样的:

  • 如果您使用的是 Express Edition,而没有使用 Visual Web Developer,那么您可能正在构建一个桌面程序。
  • 如果您正在构建一个桌面程序,并且您使用的是 express 版本,那么您可能是一个在家工作而不是为公司进行开发的业余爱好者或 uISV 用户。
  • 如果您不是为公司开发,您的应用程序可能是为最终用户而设计的,而您的数据存储可能在他们的本地计算机上。
  • 您确实不应该将服务器级 数据库部署到最终用户桌面。像 Sql Server Compact 或 MS Access 这样的进程内 db 更合适。

但是,这个逻辑并不完全成立。即使这 4 点中的每一个在 90% 的情况下都是正确的,但当你应用所有这四个点时,它也只适用于大约 65% 的受众,这意味着多达 35% 的快递市场可能会合法地想要说话到服务器级数据库,这是一个重要的群体。因此,简化(贪婪)版本:

  • 真正的数据库服务器(以及运行它的硬件)需要花费真金白银。如果您可以使用它,那么您至少应该能够负担得起 Visual Studio 的标准版。

【讨论】:

  • 不幸的是,现在我们在 VS2010 中,没有“标准”版本......最低级别是 Pro,超过 1000 美元。当我只是试图针对服务器数据库进行原型制作时会很痛苦。
  • 在解决方法中,您是否创建一个临时 db 文件只是为了通过对话框?您如何“手动更正”连接字符串?它不是存储在不同的地方(app.config、dbml 文件等)吗?此外,如果您这样做,这是否允许您使用 linq to sql 设计器?
【解决方案2】:

解决方法:

  1. 在 Visual Web Developer Express 中打开您的解决方案。它不会加载解决方案中的某些项目,但没关系。
  2. 在数据库资源管理器中与 SQL Server 所需的数据库建立新连接。
  3. 添加一个新的类库项目。
  4. 添加一个 LINQ to SQL Classes 项并将其链接到您的数据库。
  5. 关闭解决方案。
  6. 在 Visual C# Express 中打开解决方案。

现在您有一个 LINQ to SQL 类库,它链接到 Visual C# Express 中的 SQL Server 数据库。

更新

解决方案适用于 Visual Studio Express 2010。

【讨论】:

  • 这适用于 Visual Studio 2010 Express 产品线(Visual C# 和 Visual Web Developer)。谢谢
  • 我两天来一直在努力解决这个问题。谢谢!如果我们见面,我欠你一杯你喜欢的饮料!
  • 太棒了 - 我刚刚尝试使用此方法创建实体数据模型,并且效果同样好。感谢您解决这个问题!
【解决方案3】:

我的猜测是,使用 VWD,您的解决方案更有可能部署到第三方服务器,其中许多服务器不允许动态附加 SQL Server 数据库文件。因此允许其他连接类型。

IDE 行为的这种差异是升级到完整版本的关键原因之一。

【讨论】:

    【解决方案4】:

    如果您使用它来获取我为 Visual Developer 使用并想要的 LINQ to SQL,1) 获取免费的 Visual WEB Developer,使用它连接到 SQL Server 实例,创建您的 LINQ 接口,然后复制生成的文件到你的 Vis-Dev 项目中(我不使用 VD,因为它听起来很有趣)。仅包括 *.dbml 文件。 Vis-Dev 环境将需要一两秒钟来识别支持文件。这是一个额外的步骤,但肯定比手工完成或完全放弃它或更糟糕的是,为此付出代价。呜呜哈哈哈。

    【讨论】:

      【解决方案5】:

      我能够让 C# Express 2008 工作的唯一方法是移动数据库文件。因此,我打开了 SQL Server Management Studio,在删除数据库后,我将文件复制到了我的项目文件夹中。然后我将数据库重新附加到管理工作室。现在,当我尝试附加到本地副本时,它可以工作。显然,您不能多次使用同一个数据库文件。

      【讨论】:

        【解决方案6】:

        为了方便起见,我只是碰巧在 Windows 窗体中启动了我的家庭业务应用程序。我目前正在使用 Visual C# Express 2010 / SQL Server 2008 R2 Express 来开发它。我遇到了与需要连接到 SQL 服务器实例的 OP 相同的问题。我在这里跳过详细信息,但该数据库将是在 2-3 台计算机之间同步的合并数据库,这些计算机也将使用我现在正在开发的应用程序。

        我找到了一个快速的解决方法,至少,我想我做到了,因为我现在可以在 tableadapter 中使用我的存储过程,到目前为止没有任何问题。

        我在 app.config 中复制粘贴了我在另一个工作项目(VS2010 Premium)中使用的 SQL 连接,并在那里更改了我需要的所有内容。当我回到我的 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 实例进行开发,它又可以正常工作了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-08
          • 2017-11-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-02
          • 2012-06-14
          相关资源
          最近更新 更多