【问题标题】:How to make sure BindingSource.DataSource takes connections information from App.Config file and not the hardcoded values?如何确保 BindingSource.DataSource 从 App.Config 文件中获取连接信息而不是硬编码值?
【发布时间】:2019-12-13 11:00:43
【问题描述】:

我有一个 Winform,其中有 connection.config 文件,用于获取数据库连接。

我也有表单,其中我有 dataGridView 并且绑定到 .XSD 文件中的 DataSet。我在创建应用程序时使用了它。现在,当我实时发布到服务器时,它仍然显示来自 DataSet 硬编码值的数据,而不是从 App.config (connection.config) 文件中获取数据。如何确保我的所有连接都来自 connection.config 文件中的一个示例连接字符串?

例如

this.tbl_StatusTableAdapter.Fill(this.MyDataSet.Tbl_Status);

上面这行代码没有连接到App.config文件的连接!

我可以添加另一个DatSources->DataSet 并将现有数据绑定绑定到此实时数据库连接的数据集,而不是本地 dB。但是在将应用程序部署到服务器时,我不希望手动工作。

this.tbl_StatusTableAdapter.Fill(this.MyDataSet.Tbl_Status)

这怎么可能来自 App.Config?

 this.tbl_TableAdapter.Update(this.DBDataSet);

如何转换上述链接到App.COnfig 连接的语句?

【问题讨论】:

  • TableAdapter 从 app.config 的连接字符串部分读取连接字符串。如果 app.config 文件不存在,它指的是连接字符串属性的DefaultSettingValueAttribute 中的设置类中的默认值。

标签: c# winforms dataset app-config


【解决方案1】:

看起来与 How to set a table adapter's connection string (to one that is dynamically set). 重复。它包括 XSD 与 App.Config 设置以及问题的解决方案。

【讨论】:

    【解决方案2】:

    经过反复试验,我发现如下

    private void MyForm_Load(object sender, EventArgs e) { this.MyTableAdapter.Connection.ConnectionString = ConfigurationManager.ConnectionStrings[MyconnStrName]; this.MyTableAdapter.ClearBeforeFill = true;

    }

    这两行代码需要首先放在表单加载事件中,然后将其连接到 App.config 文件中的数据库,而不是属性设置中的数据库。

    【讨论】:

    • 我仍然想知道如何更改 Properties.Settings 文件中的连接字符串,欢迎使用任何 cmets。我尝试更改设置,但没有成功。
    【解决方案3】:

    如果我明白你的意思... 您需要添加此参考:System.配置 然后添加以下代码:

    OledbConnection MyConnection = new OledbConnection() ; //这个连接访问数据库..你可以使用任何数据库类型

    MyConnection.ConnectionString = 配置管理器。 ConnectionStrings["ConnectionName"].ToString();

    【讨论】:

    • 嗨,我再次询问这个类似的问题。有人可以向我解释一下,即使我在外部配置文件上更改了我的数据库名称。称为“connection.config”,为什么 Winform 项目仍然在 PROJECTNAME.Designer.cs 文件中查找连接字符串(在项目属性中)。在初始目录上部署具有不同名称的项目后,我必须更改连接字符串。但是简单地更新外部配置文件不起作用!
    猜你喜欢
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 2019-12-29
    • 2015-01-10
    • 2017-12-06
    • 2010-10-28
    • 1970-01-01
    • 2016-12-06
    相关资源
    最近更新 更多