我在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/