Tobynate Ответов: 1

Мне нужна помощь, я пытаюсь извлечь данные в текстовое поле


i"m to retrieve data from a mysql database to a read only textbox, i"m using a stored procedure  with input parameter i"m also using dapper as my mapper, and  class library as model for my data, any ideas pleas<pre lang="text">
э?

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

Ниже из моего класса библиотеки книг
lass library
public list<BooksModel>MyQuantity{get; set;}
Public string QuantiyNew{get {return MyQuantity.ToString();set{;}}}


Ниже приведено из моего класса sqlconnector, я использую два хранилища данных, Mysql и textile, поэтому я создал перечисление, которое также использует интерфейс IDataconnection
public class Sqlconnector: iDataconnection
public List<BooksModel> GetStockQuantity(BooksModel modell)
        {
          List<Booksmodel> output;
            using (IDbConnection connection = new MySqlConnection(GlobalConfig.CnnString(mydb)))
            {
                output = (BooksModel)connection.Query<BooksModel>("Book_GetAll_By_BookTitle", new { book_titlesp = bookname }, commandType: CommandType.StoredProcedure);
               
modell.MyQuantity= output;
            }
            //var invoice = connection.Get<Invoice>(1);
            return output;
        }

Теперь это код, лежащий в основе моего дизайна пользовательского интерфейса
Public partial class books item: Form
{
List<BooksModel> stocktotal =new List<BooksModel>();
Private void Stock now()
{
BooksModel model= new BooksModel(txtbt1.text,null,null,null,null,null);
stocktotal= GlobalConfig.Connection.GetStockQuantity(model);

}
Private void WireUpStockTotal()
{
stocktotaltxt.Data bindings.Clear();
stock total.Add(new BooksModel(){QuantityAgain= "C#"});
stocktotaltxt.DataBindings.Add("Text", stock total[0],"QuantityAgain");
}
Private void txtbt1_Leave(object sender, EventArgs e)
{
WireUpStockTotal();
Stock now();
}

процедура хранения-это просто "SELECT * FROM booktable WHERE book name= booksp;"



Я пытаюсь получить результат моего запроса в текстовое поле stocktotaltxt, но всякий раз, когда я запускаю этот код, он переходит в мой класс sqlconnector и выдает исключение " ссылка на объект не установлена на экземпляр объекта
Книжная библиотека.Модель.Операция.MyQuantity.вам возвращается значение null,' на общественном строку QuantityAgain{get {возвращение MyQuantity.ToString();} set{;}}

Patrice T

Покажи свой код !

Richard MacCutchan

Вы забыли сказать нам, в чем проблема.

1 Ответов

Рейтинг:
1

Richard MacCutchan

object reference not set to an instance of an object

Это означает, что вы пытаетесь использовать ссылку на переменную, которая не была инициализирована. Либо потому, что вы забыли это сделать, либо потому, что вы ожидали, что он будет возвращен из какого-то метода, который потерпел неудачу. Единственный способ узнать, что это такое и где произошел сбой, - это использовать отладчик для пошагового просмотра кода до тех пор, пока он не попадет в исключение. Затем вы можете изучить все переменные, чтобы увидеть, что происходит или не происходит.

Однако глядя на ваш код он скорее всего выглядит следующим образом:
output = (BooksModel)connection.Query<BooksModel>("Book_GetAll_By_BookTitle", new { book_titlesp = bookname }, commandType: CommandType.StoredProcedure);
               
modell.MyQuantity= output;

Вы предполагаете, что output получает некоторую ценность, но вы забыли проверить, делает это или нет. Вы никогда не должны предполагать, что вызовы методов делают то, что вы ожидаете.