SQL ОШИБКА System.Collections.Generi c .List`1 [Dapper.SqlMapper + DapperRow] - PullRequest
1 голос
/ 12 февраля 2020

Я бы хотел, чтобы мой код возвращал значение, но он возвращает меня:

System.Collections.Generi c .List`1 [Dapper.SqlMapper + DapperRow]

Я не могу решить и сделать правильный процесс вывода.

public static string Test()
{
    using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
    {
        var vartest = cnn.Query("select grado from utenti where id='10'");
        //var result = output.ToDictionary(row => (string)row.Grado, row => (string)row.Nome ) ; (commento)
        //Console.WriteLine(vartest);

        cnn.Close();
        return vartest.ToString();
    }
}

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

, если вы имеете в виду ваше возвращение vartest.ToString (); возвращает вам строку «System.Collections.Generi c .List`1 [Dapper.SqlMapper + DapperRow]», потому что ваше vartest представляет собой список элементов, вам необходимо .ToString элемент в списке

public static string ManagerFindid() 
{ 
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) 
    { 
        var select = cnn.Query("select id from utenti"); 
        if (select.Any()) 
        { 
            return select[0].ToString();
            // or do something with all the items in your list               
            foreach(string value in select)
            {
                 //add value into list view
            }
        } 
        else 
        {
            //this is hit when there are no items returned from the select query 
            return "Nothing Returned from Query";
        } 
} 

Вы также можете обработать несколько предметов, возвращенных с вашего SQL

foreach(string value in select)
{
    //do something with current value
}
1 голос
/ 12 февраля 2020

Query и Query<T> возвращают несколько строк; Query для dynamic строк; Query<T> для типизированных строк. Есть QueryFirst[<T>] и QuerySingle[<T>] для отдельных строк.

Если вам нужно одно значение известного типа, то возможно:

var vartest = cnn.QuerySingle<string>("select grado from utenti where id='10'");
...