Я изучаю веб-формы asp.net, и у меня возникла проблема.
Вместо того, чтобы предоставить то, что я пробовал, я расскажу вам, что у меня работает, а что я пытаюсь сделать, что не работает! Вот что у меня есть и работает:
SqlConnection sqlConn = new SqlConnection(connstr);
sqlConn.Open();
string sqlComm = "SELECT * FROM bookShop";
SqlCommand comm = new SqlCommand(sqlComm, sqlConn);
SqlDataReader reader = comm.ExecuteReader();
while (reader.Read())
Итак, после этого я просто динамически создаю некоторые элементы div и другие элементы для заполнения моего сайта, и это прекрасно работает, он читает всю базу данных и генерирует все.
Однако, это было в моей функции Page_Load, и теперь я пытаюсь изменить его так, чтобы он стал методом класса данных, который позволит мне просто вызывать метод вместо того, чтобы вводить все это в page_load. Таким образом, идея заключается в том, чтобы вызвать метод, который извлечет все записи из моей базы данных и поместит их в List<T>
, из которого я планирую создать необходимые элементы, а затем пользователь должен работать со строкой. После того, как он / она закончит, я буду использовать список для обновления базы данных. Это делается для того, чтобы сделать как можно меньше ссылок на фактическую базу.
Вот что у меня есть в методе:
SqlDataReader reader;
Book temp = new Book();
connection.Open();
SqlCommand loading = new SqlCommand("SELECT * FROM bookShop", connection);
reader = loading.ExecuteReader();
while(reader.Read())
{
temp.ID = int.Parse(reader[0].ToString());
temp.bookName = reader[1].ToString();
temp.bookAuthor = reader[2].ToString();
temp.bookPrice = float.Parse(reader[3].ToString());
temp.coverPath = reader[4].ToString();
books.Add(temp);
}
connection.Close();
books - это список, который я беру в качестве параметра, но по какой-то причине этот код заполняет список только последней записью в моей базе данных, и я не могу понять, почему, поскольку он точно такой же, как указано выше.