我觉得奇怪的是,在Visual C#2008 Express版中,当您使用数据库资源管理器时,您的选择是:
但如果您使用Visual Web Developer 2008 Express,则可以连接到常规SQL Server,Oracle,ODBC等。
对于开发需要与SQL Server数据库通信的命令行或其他C#应用程序的人来说,您是否真的需要使用一个IDE(Visual Web Developer)和另一个IDE(Visual Web Developer)构建LINQ /数据访问代码(Visual C#)?
这不是一个难以解决的问题,但似乎很奇怪。如果Microsoft想要强制您升级到Visual Studio以连接到SQL Server,为什么它们会在其中一个免费IDE中包含该功能而不包含其他IDE?我觉得我可能会遗漏一些东西(比如如何在Visual C#中完成所有操作)。
答案 0 :(得分:21)
您应该能够选择SQL Server数据库文件选项以获取正确类型的数据库(system.data.SqlClient
提供程序),然后手动更正连接字符串以指向您的数据库。
我认为这些数据库选择背后的原因可能是这样的:
然而,这种逻辑并不完全成立。即使这四个点中的每一个在90%的时间都是真的,当你应用它们全部四个时它只适用于约65%的观众,这意味着高达35%的快递市场可能合法地想要谈话到服务器级数据库,这是一个重要的组。所以,简化(贪婪)版本:
答案 1 :(得分:21)
解决方法:
现在您有一个LINQ to SQL类库,它链接到Visual C#Express中的SQL Server数据库。
<强>更新强>
解决方案适用于Visual Studio Express 2010。
答案 2 :(得分:2)
我的猜测是,使用VWD,您的解决方案更有可能部署到第三方服务器,其中许多服务器不允许动态连接的SQL Server数据库文件。因此允许其他连接类型。
IDE行为的这种差异是升级到完整版本的关键原因之一。
答案 3 :(得分:2)
如果您使用它来获取我为Visual Developer所需的LINQ to SQL,1)获取免费的Visual WEB Developer,使用它连接到SQL Server实例,创建LINQ接口,然后复制将文件生成到您的Vis-Dev项目中(我不使用VD,因为它听起来很有趣)。仅包含* .dbml文件。 Vis-Dev环境需要一两秒才能识别支持文件。这是一个额外的步骤,但肯定比手工或完全放弃它或甚至更好,为此付出更好。 Mooo哈哈哈哈。
答案 4 :(得分:2)
我能够让C#Express 2008工作的唯一方法是移动数据库文件。因此,我打开了SQL Server Management Studio,在删除数据库之后,我将文件复制到了我的项目文件夹中。然后我将数据库重新连接到管理工作室。现在,当我尝试附加到本地副本时,它可以工作。显然,您不能多次使用同一个数据库文件。
答案 5 :(得分:2)
为了方便起见,我刚刚在Windows窗体中启动了我的家庭业务应用程序。我目前正在使用Visual C#Express 2010 / SQL Server 2008 R2 Express来开发它。我遇到了与OP需要连接到SQL服务器实例的问题。我在这里跳过详细信息,但该数据库将是2-3台计算机之间同步的合并数据库,它也将使用我正在开发的应用程序。
我找到了一个快速的解决方法,至少,我认为我这样做是因为我现在能够在桌面适配器中使用我的存储过程,而且到目前为止没有任何问题。
我在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实例进行开发,它再次正常工作。