извините, если это звучит нубистски.Я пытаюсь создать викторину на Unity с использованием C # и базы данных в SQL Server.В этой части я пытаюсь показать наивысший балл, поэтому я сделал код для выбора максимума в базе данных:
public bool BuscarScoreFinal1()
{
SqlDataReader dataReader = null;
if (RunQuery(string.Format("SELECT MAX (PlayerScore1) FROM ScoreQuiz1", tableScoreQuiz1), ref dataReader))
{
while (dataReader.Read())
{
id1 = dataReader.GetInt32(dataReader.GetOrdinal("ID"));
PlayerName1 = dataReader.GetString(dataReader.GetOrdinal("PlayerName1"));
PlayerScore1 = dataReader.GetInt32(dataReader.GetOrdinal("PlayerScore1"));
break;
}
}
if (dataReader != null) dataReader.Close();
return true;
}
Затем я пытаюсь напечатать данные в тексте пользовательского интерфейса в этом скрипте:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UpdateScore : MonoBehaviour
{
public GameObject Question3Display;
public Text yourText;
public bool Buscardados13;
// Use this for initialization
void Start()
{
Buscardados13 = GameObject.Find("DatabaseConnection").GetComponent<DatabaseInterface>().Connect() == true;
Buscardados13 = GameObject.Find("DatabaseConnection").GetComponent<DatabaseInterface>().BuscarScoreFinal1() == true;
yourText.text = Question3Display.GetComponent<DatabaseInterface>().PlayerScore1.ToString();
}
// Update is called once per frame
void Update()
{
}
}
И это дает мне эту ошибку:
IndexOutOfRangeException: ID System.Data.ProviderBase.BasicFieldNameLookup.GetOrdinal (имя поля System.String) (at <8012ff144f1c4c8670702: 7038200704c384c2004)0) System.Data.SqlClient.SqlDataReader.GetOrdinal (имя System.String) (в <8012ff544f1c4cb384c200861f770215>: 0) DatabaseInterface.BuscarScoreFinal1 () (в Активах / Сценариях / DatabaseInterface.cs: 621) (обновление: 621)/Scripts/UpdateScore.cs:17)
Я думаю, что эта ошибка не является проблемой подключения при выборе неправильной таблицы, потому что, если я попробую другой запрос (например, просто простой выбор)это работает без ошибок.Я не думаю, что я написал запрос плохо, потому что он работает в SQL Server.Вот таблица, к которой я пытаюсь получить доступ;
Вот скриншот таблицы, которую я использую