Я использую этот запрос:
string query = "SELECT CAST(FullName AS STRING) FROM Register WHERE ID = 1;
DataTable result = SQLiteDataAccess.MakeQuery(query);
из этой таблицы SQLite. Я использую System.Data и Dapper для доступа к базе данных SQLite. Следующий код используется для доступа к базе данных:
public static DataTable MakeQuery(string query)
{
SQLiteDataReader result;
DataTable datatable = new DataTable();
using (SQLiteConnection cnn = new SQLiteConnection(LoadConnectionString()))
{
cnn.Open();
SQLiteCommand command = new SQLiteCommand(query, cnn);
result = command.ExecuteReader();
datatable.Load(result);
cnn.Close();
}
return datatable;
}
Когда я пытаюсь использовать результат, например, с этим кодом:
foreach (DataRow record in result.Rows)
{
names.Add((string)record["FullName"]);
}
Я получаю ошибку "System.ArgumentException : 'Столбец' FullName 'не принадлежит таблице.' 'Следующий снимок экрана locals показывает, что имя столбца - "CAST (FullName AS STRING)", а не "FullName", а данные тип int64, а не строка.
Кажется, я использую неправильный синтаксис для приведения типов данных. В SQLite он должен быть другим, потому что он работает на SQL Server. Какой правильный запрос в SQLite? Спасибо
Редактировать: Попробовал предложение в комментарии и получил эту ошибку , показывающую, что тип данных по-прежнему Int64.