在编译的 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 应用程序中如何链接数据源?的主要内容,如果未能解决你的问题,请参考以下文章