Подключение MySql в Unity3d -> NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта - PullRequest
0 голосов
/ 18 марта 2019

Вот мой код в Visual Studio, подключенный к Unity3d:

MySqlConnection connection;

MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder();

                connBuilder.Server = "localhost";
                connBuilder.UserID = "root";
                connBuilder.Database = "therapygame";
                connBuilder.Password = "";
                connBuilder.OldGuids = true;

                connection = new MySqlConnection(connBuilder.ConnectionString);

Вот ошибка в Unity:

NullReferenceException: Object reference not set to an instance of an object
System.Data.Common.DbConnectionStringBuilder.Remove (System.String keyword)
MySql.Data.MySqlClient.MySqlConnectionStringBuilder.Remove (System.String keyword)
MySql.Data.MySqlClient.MySqlConnectionStringOption.Clean (MySql.Data.MySqlClient.MySqlConnectionStringBuilder builder)
MySql.Data.MySqlClient.MySqlConnectionStringBuilder.SetValue (System.String keyword, System.Object value)
MySql.Data.MySqlClient.MySqlConnectionStringOption.<.ctor>b__0 (MySql.Data.MySqlClient.MySqlConnectionStringBuilder msb, MySql.Data.MySqlClient.MySqlConnectionStringOption sender, System.Object value)
MySql.Data.MySqlClient.MySqlConnectionStringBuilder.set_Item (System.String keyword, System.Object value)
MySql.Data.MySqlClient.MySqlConnectionStringBuilder.set_Server (System.String value)
mysql.SetupSQLConnection () (at Assets/mysql.cs:31)
fire_rate.Start () (at Assets/fire_rate.cs:18)

Строка 31 mysql.cs:

connBuilder.Server = "localhost";

Строка 18 fire_rate.cs:

GameObject.Find("MySQL").GetComponent<mysql>().SetupSQLConnection();

Это сообщение является обновлением предыдущего выпуска. Изменения в коде были сделаны через ответ на этот пост. Вот ссылка: MySqlConnection = новый MySqlConnection (строка) не работает

1 Ответ

0 голосов
/ 20 марта 2019

Это сработало!

Кажется очень странным получить исключение NullReferenceException (которое обычно указывает на ошибку) в DbConnectionStringBuilder.Remove (который является библиотекой Framework) от вызова MySqlConnectionStringBuilder.set_Server (который являетсядовольно общая собственность).Интересно, Unity предоставляет собственную версию этой библиотеки?Если вы можете, попробуйте переключиться на nuget.org/packages/MySqlConnector альтернативный драйвер OSS для MySQL, потому что он не использует тот же путь кода ConnectionStringBuilder, который показывает ваше сообщение об исключении.

@ Брэдли Грейнджер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...