【问题标题】:Databinding issue about updating data issue between MySQL database and my devexpress Gauge value?关于更新 MySQL 数据库和我的 devexpress Gauge 值之间的数据问题的数据绑定问题?
【发布时间】:2012-01-12 16:49:30
【问题描述】:

背景:

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

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

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

问题:

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

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

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

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

【问题讨论】:

  • 只是一个小想法,也许我应该设置一个事件或计时器来强制仪表重复绑定到我可以获得更新的数据。?如果你们有任何在线教程或其他东西。请转发。

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


【解决方案1】:

我尝试将更新后的帐户值分配给 this.myGauge.value...

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

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

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

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

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

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

【讨论】:

  • 非常感谢。我找到了解决方案,这是一个不错的软件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多