【问题标题】:Connecting MySql in Unity3d -> NullReferenceException: Object reference not set to an instance of an object在 Unity3d 中连接 MySql -> NullReferenceException:对象引用未设置为对象的实例
【发布时间】:2019-03-20 09:25:49
【问题描述】:

这是我在 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)

mysql.cs第31行:

connBuilder.Server = "localhost";

fire_rate.cs 的第 18 行:

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

这篇文章是对上一期的更新。代码更改是通过该帖子上的答案进行的。这是链接:MySqlConnection = new MySqlConnection(string) not working

【问题讨论】:

  • 当您的应用程序需要某种对象并找到空值时,总是会引发空引用异常。尝试在第 18 行设置断点并检查您的 mysql 对象是否为空。更多信息请参考这个问题:What is a NullReferenceException, and how do I fix it?
  • 通过调用MySqlConnectionStringBuilder.set_Server(这是一个非常常见的属性)在DbConnectionStringBuilder.Remove(这是一个框架库)中获得一个NullReferenceException(通常表示一个错误)似乎很奇怪.我想知道 Unity 是否提供了它自己版本的该库?如果可以,请尝试切换到nuget.org/packages/MySqlConnector MySQL 的替代 OSS 驱动程序,因为它不使用您的异常消息显示的相同 ConnectionStringBuilder 代码路径。

标签: c# mysql unity3d


【解决方案1】:

成功了!

得到一个 NullReferenceException 似乎很奇怪(它 通常表示一个错误)在 DbConnectionStringBuilder.Remove (这是 一个框架库)从调用 MySqlConnectionStringBuilder.set_Server (这是一个很常见的 财产)。 Unity 是否提供该库的自己版本,我 想知道?如果可以,请尝试切换到 nuget.org/packages/MySqlConnector MySQL 的替代 OSS 驱动程序,因为它不使用相同的驱动程序 您的异常消息显示的 ConnectionStringBuilder 代码路径。

@布拉德利·格兰杰

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 2020-11-17
    相关资源
    最近更新 更多