System.Data.SQLite在读取时抛出IndexOutOfRangeException

时间:2016-01-21 16:36:46

标签: c# sqlite

我目前正在为Twitch编写机器人,我们希望将设置存储在数据库中。

数据库本身是预先创建的,因此请求的所有列都在那里。

不知何故,当使用reader对象时,它会立即抛出IndexOutOfRangeException。我不知道导致此错误的原因。

public static void GetConfigFromDb()
    {
        try
        {
            SQLiteConnection conn = new SQLiteConnection("Data Source=OakSettings.sqlite;");
            conn.Open();
            string sql = "SELECT * FROM oak_settings";
            SQLiteCommand command = new SQLiteCommand(sql, conn);
            SQLiteDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                //StreamerOAuthKey = (string)reader["StreamerOAuthToken"];
                //BotOAuthKey = (string)reader["BotOAuthToken"];
                //StreamerUsername = (string)reader["StreamerTwitchUsername"];
                //BotUsername = (string)reader["BotTwitchUsername"];
                StreamerOAuthKey = reader.GetString(reader.GetOrdinal("StreamerOAuthToken"));
                BotOAuthKey = reader.GetString(reader.GetOrdinal("BotOAuthToken"));
                StreamerUsername = reader.GetString(reader.GetOrdinal("StreamerTwitchUsername"));
                BotUsername = reader.GetString(reader.GetOrdinal("BotTwitchUsername"));
            }
            conn.Close();
        }
        catch (Exception ex)
        {
            System.Windows.MessageBox.Show(ex.ToString());
        }
    }

调用此方法的唯一方法是启动应用程序。被评论的部分是我以前做过的方式,但后来我改变了它,希望这会导致错误。

导致错误的原因是什么?

0 个答案:

没有答案