使用Visual Studio速成版连接到SQL Server

本文关键字:连接 SQL Server Visual Studio 使用 | 更新日期: 2023-09-27 17:48:52

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

  1. Microsoft Access
  2. SQL Server Compact 3.5,以及
  3. SQL Server数据库文件

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

对于开发需要与SQL Server数据库对话的命令行或其他C#应用程序的人,您真的需要用一个IDE(Visual Web Developer)构建LINQ/Data Access代码,用另一个IDE构建程序(Visual C#)吗?

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

使用Visual Studio速成版连接到SQL Server

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

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

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

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

  • 一台真正的数据库服务器(以及运行它的硬件)要花很多钱。如果你能接触到它,你应该至少能买得起标准版的视觉工作室

解决方法:

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

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

更新

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

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

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

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

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

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

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

我将我在另一个工作项目(VS2010 Premium)中使用的SQL连接复制粘贴到app.config中,并在那里更改了所需的一切。当我回到Settings.Settings时,我只需要确认我想要app.config文件中的内容。我能看到的唯一缺点是,你不能"测试"连接,因为当你进入连接字符串的配置时,你不能去任何地方,因为"SQL Server"不是一个选项。另一个缺点是,您需要手动输入所有内容,因为您无法使用任何向导使其工作。

我不知道我是否应该这样做,但至少我现在可以连接到我的SQL服务器了:)。

编辑:

它仅适用于SQL Server 2008 R2 Express实例。如果您尝试使用SQL Server 2008 R2 Workgroup及更高版本,您将从Visual C#2010学习版收到一条严重警告,告诉您"您不能将该连接用于当前版本的Visual Studio"。当我试图修改我的一些表适配器时,我得到了它。我切换回SQL Express实例进行开发,它再次正常工作。