Tobynate Ответов: 2

Как получить данные из базы данных в объект библиотеки классов


Я пытаюсь получить данные из своей базы данных в объект библиотеки классов, я использую хранимую процедуру и dapper, мой запрос работает нормально, но мне нужно получить данные из конкретной таблицы в объект библиотеки классов, какие-нибудь идеи, пожалуйста?

Что я уже пробовал:

Public class sqlconnector IDataConnection:
Public TransactionsModel GetStockQuantity (TransactionsModel modell)
{
List<Transactions Model> output;
Using(IDbConnection connection= new MySqlConnection(GlobalConfig.CnnString(mydb)))
{
output = connection.Query<TransactionsModel>("Book_GetAll_By_BookTitle",new {book_titlesp=model.Transacted_book_name}, command type: CommandType.StoredProcedure).ToList();
var p= new DynamicParameter();
modell.QuantityAgain= p.Get<int>("quantity").ToString();
}
return model.MyQuantity;
}

Имя книги model.transacted попадает в запрос, но оно дает выходные данные
Когда я запускаю его,он выдает исключение system.collection.generic.key not found exception, данный ключ не присутствовал в словаре при выполнении команды
Modell.QuantityAgain= p.Get<int>("quantity").ToString();

Maciej Los

Какая сортировка?

2 Ответов

Рейтинг:
15

Richard Deeming

Цитата:
var p= new DynamicParameter();
modell.QuantityAgain= p.Get<int>("quantity").ToString();
Неудивительно, что Get терпит неудачу, учитывая, что вы буквально только что создали DynamicParameters объект, и не добавил к нему никаких параметров!

Сравните свой код с примером из документации:
GitHub - StackExchange/Dapper: Dapper - простой картограф объектов для .Net[^]
public int GetStockQuantity(TransactionsModel model)
{
    using (IDbConnection connection= new MySqlConnection(GlobalConfig.CnnString(mydb)))
    {
        var p = new DynamicParameter();
        p.Add("@book_titlesp", model.Transacted_book_name);
        p.Add("@quantity", dbType: DbType.Int32, direction: ParameterDirection.Output);
        
        connection.Execute("Book_GetAll_By_BookTitle", p, commandType: CommandType.StoredProcedure);
        
        return p.Get<int>("@quantity");
    }
}


Maciej Los

Ты же волшебник, Ричард!