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);
}