在编译的 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 服务?