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

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

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

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

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

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

提前感谢您的帮助! =)

【问题讨论】:

    标签: database vb.net visual-studio sql-server-ce


    【解决方案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 文件、注册表项或应用程序配置中,因为您在连接字符串中指定了文件的路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    相关资源
    最近更新 更多