Sqlitedatabase+;统一

Sqlitedatabase+;统一,database,unity3d,Database,Unity3d,我正在尝试连接sqlite数据库中的unity,但出现错误。这个错误意味着什么? IndexOutOfRangeException: Array index is out of range. Mono.Data.Sqlite.SqliteDataReader.GetSQLiteType (Int32 i) Mono.Data.Sqlite.SqliteDataReader.VerifyType (Int32 i, DbType typ) Mono.Data.Sqlite.SqliteDataRe

我正在尝试连接sqlite数据库中的unity,但出现错误。这个错误意味着什么?

IndexOutOfRangeException: Array index is out of range.
Mono.Data.Sqlite.SqliteDataReader.GetSQLiteType (Int32 i)
Mono.Data.Sqlite.SqliteDataReader.VerifyType (Int32 i, DbType typ)
Mono.Data.Sqlite.SqliteDataReader.GetString (Int32 i)
callOneUser.GetOneUsername () (at Assets/callOneUser.cs:41)
callOneUser.Start () (at Assets/callOneUser.cs:22)
void Start()
    {
       Connection = "URI=file:" + Application.dataPath + "/English_Booster_Game_DB.s3db"; //Path to database.
        GetOneUsername();
    }
我正在尝试使用此代码。这是我的void Start()

IndexOutOfRangeException: Array index is out of range.
Mono.Data.Sqlite.SqliteDataReader.GetSQLiteType (Int32 i)
Mono.Data.Sqlite.SqliteDataReader.VerifyType (Int32 i, DbType typ)
Mono.Data.Sqlite.SqliteDataReader.GetString (Int32 i)
callOneUser.GetOneUsername () (at Assets/callOneUser.cs:41)
callOneUser.Start () (at Assets/callOneUser.cs:22)
void Start()
    {
       Connection = "URI=file:" + Application.dataPath + "/English_Booster_Game_DB.s3db"; //Path to database.
        GetOneUsername();
    }
这是GetOneUsername()过程。

public void GetOneUsername()
    {
        using (IDbConnection dbConnection = new SqliteConnection(Connection)) 
        {
            dbConnection.Open();

            using (IDbCommand dbCmd = dbConnection.CreateCommand())
            {
                string selectoneusername = "select UserData_name from user_data where UserData_status = 1";

                dbCmd.CommandText = selectoneusername;

                using (IDataReader reader = dbCmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        name.text = reader.GetString(1);
                    }
                    dbConnection.Close();
                    reader.Close();
                }
            }
        }
    }

在查询字符串中,您会得到一列
UserData\u name

string selectoneusername = "select UserData_name from user_data where UserData_status = 1";
它只返回一个列和索引(以C为单位)#从开始“零”。因此,您应该更改脚本的这一行:

name.text = reader.GetString(1);
致:


我希望它能帮助您

第22行是哪一行?错误本身意味着您试图访问数组范围之外的元素索引。例如,如果有一个包含2个元素的数组,则它们的索引分别为
0
1
。可以通过尝试访问该数组的索引
2
来调用此错误,因为它超出了该数据结构的范围。(它不必是数组,它只是一个示例,以及这个错误告诉您的内容)。