Я довольно новичок в ASP.NET и в качестве самостоятельного задания я должен создать простой блог.Это почти закончено, но я столкнулся с проблемой.Как вы можете видеть из кода, я сначала использую запрос, чтобы вернуть количество записей в блоге из моей базы данных сервера SQL.Затем цикл for считывает заголовки, даты и текстовое содержимое из всех строк и создает HTML-элемент div, в который он загружает их. Прекрасно работает, за исключением одной вещи: ExecuteScalar () читает только первую строку, которая будет возвращать одно и то же значение для каждой итерации, в результате чего все записи блога будут одинаковыми.
Мне нуженспособ для читателя двигаться с каждой итерации.Я подумал о том, чтобы сделать SQLbulkcopy в другую таблицу, из которой я могу затем удалить верхнюю строку в цикле for, но похоже, что это замедлит страницу на значительное количество, если это будет сделано для каждой Page_Load.
string SQLreadTitle = "Select BLOG.BlogTitle from BLOG order by BlogID DESC";
string SQLreadDate = "Select BLOG.BlogDate from BLOG order by BlogID DESC";
string SQLreadText = "Select BLOG.BlogText from BLOG order by BlogID DESC";
string SQLcountIDs = "Select count(BlogID) from BLOG";
protected void Page_Load(object sender, EventArgs e)
{
int i;
SqlConnection con = new SqlConnection(cnString);
con.Open();
SqlCommand countIDs = new SqlCommand(SQLcountIDs, con);
int count = Convert.ToInt32(countIDs.ExecuteScalar());
for (i = 0; i < count; i++)
{
SqlCommand readTitle = new SqlCommand(SQLreadTitle, con);
string titleString = readTitle.ExecuteScalar().ToString();
SqlCommand readDate = new SqlCommand(SQLreadDate, con);
string dateString = readDate.ExecuteScalar().ToString();
SqlCommand readText = new SqlCommand(SQLreadText, con);
string textString = readText.ExecuteScalar().ToString();
System.Web.UI.HtmlControls.HtmlGenericControl dynDiv =
new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
dynDiv.ID = "BlogPost";
dynDiv.InnerHtml = "<div id=\"BlogTitle\">" +
titleString + "</div><br /><div id=\"BlogDate\">"
+ dateString + "</div><br /><br /><div id=\"BlogText\">"
+ textString + "</div>";
Label1.Controls.Add(dynDiv);
}
con.Close();
}
Заранее спасибо!