在编译的 Visual Basic .NET 应用程序中如何链接数据源?

Posted

技术标签:

【中文标题】在编译的 Visual Basic .NET 应用程序中如何链接数据源?【英文标题】:How data sources are linked in compiled Visual Basic .NET applications? 【发布时间】:2009-06-18 05:57:36 【问题描述】:

当我尝试向我的项目添加新数据源时,我收到一条提示“您选择的连接使用不属于当前项目的本地数据文件。您想将该文件复制到您的项目并修改连接?”

这对我来说听起来相当晦涩,因为我是 VB.NET 的新手,并且通常对非脚本应用程序进行编程。本例中的数据源是一个 .sdf SQL CE 文件。

问题1:如果我说我想把数据库复制到项目中,我编译完app后会发生什么,数据库在哪里? (我将如何从另一个应用程序编辑它?)

问题2:如果我不包含它,数据源如何仍然保持链接?我可以使用 %ProgramFiles%\MyAppDir 等文件系统环境变量进行链接吗?

问题 3:我可以告诉它在网络上使用只读(只需读取它)数据源,比如在 FTP 上吗?

提前感谢您的帮助! =)

【问题讨论】:

【参考方案1】:

Visual Studio 只是尝试将所有文​​件放在一个位置,其余文件放在项目文件夹中。

Q1 - SQL Ce 数据库可以在您喜欢的任何地方,您可以使用 app.settings 中的 ConnectionStrings 设置部分。 SQL Ce 只是一个文件,仅此而已,因此可以从任何应用程序访问。 Is 不会编译到您的应用程序中,它只是在您部署等时随身携带。

回答 Q2 - 你可能可以,但我不确定它是否会自动为你工作。

Q3 - 从 ftp 读取,可能不会,除非您在应用程序中使用 ftp 客户端支持并在后台下载它。另一种解决方案是将 ftp 映射到本地驱动器并从那里访问它。

例如在app.config中存储连接字符串(摘自app.config):

<connectionStrings>
   <add name="db" connectionString="Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0; data source=c:SomePathToSDFfile" />
</connectionStrings>

稍后在您的应用程序中,您可以像这样访问此连接字符串: (添加对 System.Configuration 的引用)

  Dim c As Configuration.ConnectionStringSettingsCollection
  Dim cn As SqlClient.SqlConnection

  c = Configuration.ConfigurationManager.ConnectionStrings
  cn = New SqlClient.SqlConnection
  cn.ConnectionString = c.Item("db").ConnectionString
  cn.Open()

【讨论】:

Q1 - 但是在应用程序编译后它必须留在同一个目录中? (例如“.\file.sdf”)如果我可以在 .ini 文件之类的文件中创建一个参数将是理想的。我可以吗? 不,它不必在同一个目录中。该参数可以在任何地方,甚至在 ini 文件、注册表项或应用程序配置中,因为您在连接字符串中指定了文件的路径。

以上是关于在编译的 Visual Basic .NET 应用程序中如何链接数据源?的主要内容,如果未能解决你的问题,请参考以下文章

在Visual Basic.NET(VB.NET)中开发的ASP.NET Core应用程序,可以吗? VS

VB.NET 的 Visual Basic 2015 项目在 XP 中工作

FireFox 31 不播放来自 Visual Basic 2013 ASP.NET Web 应用程序项目的视频

如何使用 visual basic.net express edition 安装 Windows 服务?

用于 xp 平台程序的 visual basic .net 程序正在 Windows 7 上构建

无法在 Visual Basic 2010 中编译,出现错误