【发布时间】:2022-01-15 14:25:04
【问题描述】:
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会关闭吗?如果不关闭有什么缺点? - 我想加载多篇文章,但我计划从 SQL Server 存储过程中导入
articleModel类。执行过程时,会执行Select * from article代码,在这种情况下返回多行。如何读取这些多行? - 如果我使用像
select * from article这样的SQL 查询,速度有什么不同吗?指定所有列更好吗?还是*更好? - 如果您有任何编码技巧或在配置 SQL Server 或 ASP.NET 网站时提高性能的技巧,请告诉我!
感谢阅读。
【问题讨论】:
-
除此之外...Can we stop using AddWithValue() already?AddWithValue is Evil。使用其他.Add(...) methods,这样就可以指定正确的SQL数据类型、参数长度等。
-
欢迎来到 Stack Overflow。这是许多问题合而为一,这不遵循这里的指导方针。请阅读tour 和How to Ask,考虑研究个别问题,如果找不到合适的答案,请独立询问。不过,我怀疑 Stack Overflow 上现有的问答已经涵盖了许多内容。
-
其次...从
ExecuteReader()返回的SqlDataReader 是IDisposable。确保正确关闭并处理它,以免用完连接池中的所有连接。此外,请务必正确处理Read()和NextResult(),否则您可能会错过 SQL Server 抛出的错误和异常,参考:Dan Guzman 的 The Curious Case of Undetected SQL Exceptions。 -
除了#3:
return 1;没有意义,你实际上并没有对读者做任何事情
标签: c# asp.net sql-server asp.net-mvc