我有一个应用程序使用 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)是相同的,因为我使用了相同的转储文件在两个服务器上导入数据。
问题:是什么导致了这个问题?
update:还有一个查询使用相同的连接字符串,它使用上述相同的方法填充另一个dgv,而这个查询似乎正在工作。
在与terry交谈之后,我意识到问题出在查询中,当我在mysql中使用workbench运行查询时,它在windows服务器上工作,但在ubuntu服务器上不工作
1条答案
按热度按时间lstz6jyr1#
我发现的问题是在mysql表名中,ubuntu服务器中存在一些区分大小写的问题。我代码中的很多查询都是用大写字母写在表名中的,这就是为什么它不能在ubuntu上的mysql上工作。然而,windows上的mysql似乎对此更加宽容,并接受表名。
“表和数据库名称在磁盘上的存储方式以及在mysql中的使用方式受小写\u table \u names系统变量的影响。小写表格名称可以采用下表中所示的值。此变量不影响触发器标识符的大小写敏感度。在unix上,小写\u表\u名称的默认值为0。在windows上,默认值为1。在macos上,默认值为2。“<--source-->https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html