mysql - 关于更新 MySQL 数据库和我的 devexpress Gauge 值之间的数据问题的数据绑定(bind)问题?

标签 mysql winforms visual-studio-2010 data-binding devexpress

背景:

  1. 开发一个交易系统,该系统订阅许多由 Interactive Brokers API 发送的事件。一个有趣的事件是关于我的交易账户值(value),它在交易时间内波动,所以我希望立即看到带有 accountvalueupdate 事件的信息。我在 Visual Studio 2010 中基于 ActiveX api 和 c# 开发了这个。

  2. 我想检查此信息的演示文稿是使用由 (http://www.devexpress.com/Products/NET/Controls/WinForms/Gauges/) 开发的仪表。这个仪表看起来很花哨,但原理应该与我们在 Visual Studio 中使用的普通仪表类似。似乎我只能通过数据绑定(bind)更新仪表的值,因为我试图将更新的帐户值分配给 this.myGauge.value 但失败了。

  3. 我在 MySql 和 VS2010 之间建立了 MySql 连接。我在 MySQL 中只创建一个表,称为帐户。为了简单起见,我只有两列(accountID 和 accountValue)和一行|(这意味着当事件带有新的 accountValue 时,我只是覆盖上一个 session 的 accountValue 的值然后行数总是一个。非常简单想法......)。在那个 Gauge proporties 中,我找到了 databinng 选项,我通过使用高级选项来设置导航抛出可用表并将其绑定(bind)到唯一有用的列 accountValue。

问题:

  1. 我将 accountValue 的默认值设置为 500 作为测试的默认值。我构建我的软件。仪表正确显示 500。
  2. 当然,我的真实账户值(value)不是 500,所以现在我单击一个按钮连接到 API 并开始监听事件。几秒钟后,自从我在控制台上打开管理 mysql 表并使用 select * from account 持续观察更新后,事件就到了。我注意到 accountValue 列(TABLE WORKS RIGHT AND WE ONLY HAVE ONE ROW, OEVERWRITTING MODE)的值变为正确的值,例如 35000。

然而,仪表根本没有改变...!!现在,如果我关闭我的软件并再次构建,仪表显示正确的值 35000。现在我关闭了 api,没有即将发生的事件,只使用 mysql 的命令行再次将 accountValue 的值更改为 500。仪表中也没有更新.

看起来仪表只在构建 session 期间或启动时读取表的值,从不监听绑定(bind)数据库的更新。

顺便说一句,我尝试将出价数据模式设置为“onValidation”或“onPropertieschanged”,但它并没有解决,尽管“onPropertieschanged”看起来是正确的....

最佳答案

I tried to assign updated account value to this.myGauge.value...

很遗憾,您提供的信息无法明确诊断此问题。在 WinForms GaugeControl 和 CircularGauge 中(在 Linear/Digital/StateIndicator gauge 中)都没有 Value 属性,但只有在 ASPxGaugeControl ( ASPxGaugeControl.Value ) 中。因此,请提供不适合您的完整示例代码。

所有这些属性都可以在代码中手动更改或使用标准 .NET 数据绑定(bind)机制将数据绑定(bind)到数据源:

  • ArcScaleComponent.DataBindings 属性允许您进行数据绑定(bind) 到圆形仪表刻度的当前值 ( ArcScale.Value )。
  • LinearScaleComponent.DataBindings 属性允许您 数据绑定(bind)到线性仪表刻度的当前值 (LinearScale.Value)。
  • DigitalGauge.DataBindings 属性允许您将数据绑定(bind)到 数字仪表显示的文本。
  • StateIndicatorComponent.DataBindings 属性允许您 数据绑定(bind)到状态指示器的状态。

请查看以下文章以获取更多详细信息:Data Binding .
数据绑定(bind)功能在 Gauge 的主演示项目(DataBinding 模块)中进行了演示:

this.arcScaleComponent2.DataBindings.Add(
    new System.Windows.Forms.Binding("Value", this.productsBindingSource,
    "UnitsOnOrder", true, System.Windows.Forms.DataSourceUpdateMode.Never));

附言请使用DevExpress Support Center提出问题或报告问题,因为当您使用社区、新闻组或其他通信 channel 时,无法保证 DX 参与。

关于mysql - 关于更新 MySQL 数据库和我的 devexpress Gauge 值之间的数据问题的数据绑定(bind)问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8376973/

相关文章:

php - 在 .htx 文件中使用 require 创建 connect.php

c# - 将委托(delegate)实例添加到 Component.Events (EventHandlerList) 有什么好处?

visual-studio-2010 - VS2008 到 VS2010 项目转换

c - C 中的 PlaySound 发出蜂鸣声但不播放 wav 文件

mysql - Wordpress - 使用 $wpdb->update 并限制 1

mysql - 如何模拟mysql数据库?

mysql - 基于 Sakila 或其他标准数据库开发一套全面的 SQL 语句/查询

c# - WinForms 全局异常处理?

c# - 控制不透明度

visual-studio-2010 - 使用 Visual Studio 调试报表