try
{
SqlCommand cmd = new SqlCommand
{
Connection = con,
CommandText = "GetJournalByTag",
CommandType = System.Data.CommandType.StoredProcedure
};
cmd.Parameters.AddWithValue("@Tag", Tag);
con.Open();
cmd.ExecuteReader();
con.Close();
return 1;
}
catch
{
return 0;
}
我有這樣寫的代碼。
我打算選擇具有相同標簽的帖子,按日期對它們進行排序,然后匯入它們。
這是我很好奇的:
- 如果有 100 個帖子,我想將它們分成 10 頁,每頁 10 頁。在這種情況下,實作它的最佳方法是什么?任何示例或鏈接將不勝感激。
- 如果我回傳一個沒有 的值
con.close,是否SqlConnection關閉?如果不關閉有什么壞處? - 我想加載多篇文章,但我計劃
articleModel從 SQL Server 存盤程序匯入該類。在執行程序時,Select * from article代碼被執行,在這種情況下回傳多行。如何讀取這些多行? - 如果我使用 SQL 查詢,速度有什么不同
select * from article嗎?指定所有列是否更好?或者*更好? - 如果您在配置 SQL Server 或 ASP.NET 網站時有任何編碼技巧或提高性能的技巧,請告訴我!
謝謝閱讀。
uj5u.com熱心網友回復:
如果有100個帖子,我想把它們分成10頁,每頁10頁
考慮使用OFFSET-FETCH代碼中的 where 您需要跟蹤當前已獲取的內容,例如第一次 0、下一次 10 等。在下面的示例中,您為 傳遞了一個引數值@Offset。
使用 OFFSET 和 FETCH 限制回傳的行
另見 SO 帖子
- 使用存盤程序進行分頁
- 為什么 SELECT * 被認為是有害的?
并注意使用*vs 指定列,始終指定列。
DECLARE @Offset int = 0;
DECLARE @FetchRowCount int = 10;
SELECT P.ProductID,
P.ProductName,
P.CategoryID,
P.UnitPrice,
P.DiscontinuedDate,
C.CategoryName
FROM Products AS P
INNER JOIN Categories AS C ON P.CategoryID = C.CategoryID
ORDER BY P.ProductName
OFFSET @Offset ROWS FETCH NEXT @FetchRowCount ROWS ONLY;
用于連接和命令的 C# 代碼模型
public static void Demo(string tag)
{
using (var cn = new SqlConnection())
{
using (var cmd = new SqlCommand())
{
cmd.Connection = cn;
cmd.CommandText = "GetJournalByTag";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@Tag", SqlDbType.NVarChar).Value = tag;
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/380094.html
