我在Unity中使用SQLite尝试显示数据库中的某些信息。

但是我遇到了一些问题,我不知道要使它正常工作会缺少什么。

public class City // List
{
    public  int vID { get; set; }
    public  string vName{ get; set; }
}




public class training : MonoBehaviour {

public List<City> LoadCity()
{
    var listOfCity = new List<City>();

    string conn = "URI=file:" + Application.dataPath + "/DataBase/db_01.s3db";
    IDbConnection dbconn;
    dbconn = (IDbConnection) new SqliteConnection(conn);
    dbconn.Open();
    IDbCommand dbcmd = dbconn.CreateCommand();

    string sqlQuery = "SELECT r_id,r_name "+" FROM region ";
    dbcmd.CommandText = sqlQuery;
    IDataReader reader = dbcmd.ExecuteReader();

    while(reader.Read())
    {
        var city = new City();
        city.vID = Convert.ToInt32(reader["r_id"]);
        city.vName = reader["r_name"].ToString();

        listOfCity.Add(city);
    }

    reader.Close();
    reader = null;
    dbcmd.Dispose();
    dbcmd = null;
    dbconn.Close();
    dbconn = null;

    return listOfCity;

}

void OnGUI()
{
    for (int ai = 0; ai < LoadCity().Count; ai++)
    {
        GUI.Button(new Rect (25, 50+(ai+1)*35, 210, 30),(City.vName[ai]));
        Debug.Log(City.vName[ai]);

    }
}
}


为什么在无效的GUI中我无法调用City.vName?

谢谢你的帮助。

最佳答案

由于City.vName不是静态成员,因此无法访问它,请尝试使用以下代码在类中将vName设为静态:

    public class City // List
    {
        public  int vID { get; set; }
        public  static string vName{ get; set; }
    }


实际上,您可以在不调用City.vName的情况下完成此工作。对于您的情况,您可以从LoadCity()函数中捕获列表,然后使用listOfCity.vName[ai]迭代访问该列表中的vName。

关于c# - 从SQL获取数据并将其放在列表中/访问没有静态的其他类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31558354/

10-13 03:15