我有一个应用程序使用datasource
函数输出datagridview
dim query1 as string = "Select * from trades"
Source1.DataSource = GetData(query1)
With Me.DGVTrades
.DataSource = Source1
End With
当我针对MySQL
上托管的windows 10
服务器运行该应用程序时,上面的代码可以正常运行并填充datagridview
。但是,它对MySQL
上托管的ubuntu 18.04
服务器无效。
两个操作系统的数据库和MySQL服务器版本(8.0.11)是相同的,因为我使用相同的转储文件在任一服务器上导入数据。
问题:可能导致此问题的原因是什么?
更新:还有另一个查询使用相同的连接字符串,使用上面提到的相同方法填充另一个DGV,这个似乎正在运行。
在与Terry交谈之后,我意识到问题出现在查询中,当我使用MySQL中的工作台运行查询时,它可以在Windows服务器上运行,但不能在Ubuntu服务器上运行
答案 0 :(得分:1)
我发现的问题是在MySQL表名中,Ubuntu服务器中存在一些区分大小写。我的代码中的查询很多都是用表名中的大写字母写的,这就是为什么它不适用于Ubuntu上的MySQL。然而,Windows上的MySQL似乎对此更加宽容并按原样接受表名。
“表和数据库名称如何存储在磁盘上并在MySQL中使用受lower_case_table_names系统变量的影响.lower_case_table_names可以采用下表中显示的值。此变量不会影响触发器标识符的区分大小写。在Unix上, lower_case_table_names的默认值为0.在Windows上,默认值为1.在macOS上,默认值为2.“ < - 来源 - > https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html