【问题标题】:Anylogic - How to access a cell in a databaseAnylogic - 如何访问数据库中的单元格
【发布时间】:2018-05-23 21:19:28
【问题描述】:

无论如何我可以在任何逻辑中更改单元格的值吗? 我尝试使用getValueAtsetValueAt。每次我尝试时都会出现一个错误,提示 getValueAt 无法使用数据库。我很确定这将在java中工作。为什么它在这里不起作用?

有什么建议或解决方法吗?

【问题讨论】:

  • 显示一个代码示例来演示您尝试过的内容。
  • 感谢您的反馈。首先我尝试了: db_auftrag.setValueAt("2", 2, 2) 后来我尝试了: db_auftrag.setValueAt(2,2)=2 db_auftrag(2,2)=2 db_auftrag 是我的数据库。我想在 B2 单元格中写 2

标签: java cell anylogic


【解决方案1】:

您需要使用insertInto 函数添加新数据行或使用“更新”函数修改现有单元格,将这些输入到 AnyLogic 帮助中以获取代码示例。

【讨论】:

  • 我试过这个,但我不明白。无论如何都非常感谢! insertInto(db_auftrag) .columns(typ1) .values("1") .execute();以及 executeStatement("INSERT INTO db_auftrag (typ1) VALUES ('1')");在 anylogic 帮助中找到一个很好的例子,我没能找到。
  • 谢谢。如果有其他人想解决这个问题,“更新”功能就是要使用的功能。我要专注于插入
【解决方案2】:

insert into 内部数据库执行以下操作: https://help.anylogic.com/topic/com.anylogic.help/html/connectivity/Inserting.html

但在我看来,您想update 数据库中的一个值。你必须使用这个: https://help.anylogic.com/topic/com.anylogic.help/html/connectivity/Updating.html

如果更新,则需要指定要更新的行。例如,在 column1 中是一个 id,您想要更新 column2 的值。做这样的事情:

int var = 2;    
update(db_auftrag)
.where(db_auftrag.column1.eq("parameter1"))
.set(db_auftrag.column2, var)
.execute();

如果您想再次将该值读入您的模拟中,请不要读取缓存的数据库表,而要读取原始数据库表。 Gregory 在这里提到了这一点:https://stackoverflow.com/a/46547812/7105351

【讨论】:

  • 谢谢,现在它正在工作。区分插入和更新的提示非常重要。我要瞎了。
  • 是否可以通过列号访问列?
猜你喜欢
  • 2018-08-02
  • 2022-01-21
  • 1970-01-01
  • 2012-04-21
  • 2019-10-15
  • 2015-11-27
  • 1970-01-01
  • 1970-01-01
  • 2015-04-27
相关资源
最近更新 更多