sqlite C# substr вызывает ошибку

Задача проста, есть локальная БД и приложение, которое просматривает ее и показывает таблицу с результатами. Проблема с запросом SQL. У меня есть 3 столбца в таблице классов, и мне нужно только 2 для отображения в таблице приложения, а второй должен иметь ограниченное количество букв. SQLite SQL Manager выполняет этот запрос и выдает правильные данные, но C# выдает ошибку.

private void SearchButtonClick(object sender, RoutedEventArgs e)
    {

        base_connection.ConnectionString = "Data Source=New_test_base.db;Version=3;New=False;Compress=True;";
        base_connection.Open();
        sqlite_cmd= base_connection.CreateCommand();
        sqlite_cmd.CommandText = "select Tag, substr(Description, 1, 2) from Classes where Description = 'rty'";// "select * from Classes where Description = '"+ SearchString.Text+"'";

        DbData = sqlite_cmd.ExecuteReader();


        DbData.Read();
            string myreader = DbData["Tag"].ToString()+DbData["Description"].ToString();

            MessageBox.Show(myreader);


    }

Ошибка: Индекс находится вне массива (не уверен насчет формулировки, у меня русский VS) Я использую System.Data.SQLite;

1 ответ

Вы, вероятно, должны дать псевдоним столбцаDescription'в вашем запросе.

private void SearchButtonClick(object sender, RoutedEventArgs e)
{
    base_connection.ConnectionString = "Data Source=New_test_base.db;Version=3;New=False;Compress=True;";
    base_connection.Open();
    sqlite_cmd= base_connection.CreateCommand();
    sqlite_cmd.CommandText = "select Tag, substr(Description, 1, 2) as Description from Classes where Description = 'rty'";// "select * from Classes where Description = '"+ SearchString.Text+"'";

    DbData = sqlite_cmd.ExecuteReader();
    DbData.Read();
    string myreader = DbData["Tag"].ToString()+DbData["Description"].ToString();

    MessageBox.Show(myreader);
}
Другие вопросы по тегам