【发布时间】:2019-12-24 19:08:44
【问题描述】:
当我在 Unity 编辑器中运行我的项目时,我可以运行我的数据库。我可以毫无问题地对其进行读写。但是,当我构建我的项目并运行它时,在读取我的数据库时什么也没有发生。 我已将其设置为在读取数据库时创建文本文件以检查是否已读取,但未创建文本文件。由此我可以假设数据库连接没有打开。 我正在使用 LocalHost 中的 MySQL 数据库。 有没有办法将数据库放在项目文件中,以便无论程序在哪里(例如在另一台计算机上)都可以访问,并使该数据库可读?好像它是一个文本文件。这就是我所需要的。该数据库有许多表,所有这些表都是在游戏运行时从我的 C# 脚本中访问的。 我确实有连接密码,但我没有将它包含在下面的代码中。 我需要一个非常简单的解决方案,因为只需要本地数据来存储玩家的进度,因此如果可能的话不需要托管它的服务器。
public string location = @"server=localhost;user=root;database=wattsup;port=3306;Allow User Variables=True"; //Path to database
MySqlConnection con = new MySqlConnection(location);
con.Open();
MySqlCommandBuilder cmdBuilder = new MySqlCommandBuilder();
string tbname = cmdBuilder.QuoteIdentifier(name1);
string query = "SELECT Question FROM " + tbname + " WHERE ID = @value";
MySqlCommand command = new MySqlCommand(query, con);
command.Parameters.AddWithValue("@value", Equations[EquationValue].EquationID);
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
SpaceGame.question = Convert.ToString(reader[0]);
string fileName = @"Question.txt";
//text file created to show me whether it is opened or not
using (StreamWriter fileStream = File.CreateText(fileName))
{
fileStream.WriteLine(SpaceGame.question);
}
}
con.Close();
【问题讨论】:
-
除了安装 mysql 只是为了存储玩家进度的游戏有点极端之外,我会为你的游戏添加一堆日志记录 - 你究竟在为 Windows 构建什么? linux?苹果电脑?网络游戏?安卓?
标签: c# mysql database visual-studio unity3d