数据库中count(*)和count(数字)的区别:
我们知道要查询一个表的记录数,通常使用Select count(*) from 表名,那么它和count(数字),这里的数字可以是任意数字,又有何区别呢?count(*)在查询汇总的时候是去遍历表字段大
小最短的那一列,而count(数字),打个比方,count(1)就是在查询结果后面加一列,那一列的数据全是1,统计有多少个1,所以这里的数字无论是什么都可以,所以这两个方法从执行效率上
讲,没有高低之分,因为字段的长度有的比int还小,那么count(*)就比count(数字)的效率高,反之则低,要据实际情况而论。
exec 存储过程名
exec ('SQL语句')
数据访问层使用存储过程(例子):
public List<Model.HKSJ_Main> LoadDataByPage(int pageIndex, int pageSize, out int total)
{
//执行一个存储过程将当前页数据查询出来。
SqlParameter totalPara = new SqlParameter("@total", SqlDbType.Int);
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString))
{
conn.Open();
using (SqlDataAdapter adapter = new SqlDataAdapter("PR_LoadPageData", conn))
{
adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
adapter.SelectCommand.Parameters.AddWithValue("@pageSize", pageSize);
adapter.SelectCommand.Parameters.AddWithValue("@pageIndex", pageIndex);
totalPara.Direction = ParameterDirection.Output;//输出参数。
adapter.SelectCommand.Parameters.Add(totalPara);
adapter.Fill(ds);
}
}
total = int.Parse(ds.Tables[1].Rows[0][0].ToString());
total =(int)totalPara.Value;
//把DataSet数据转成集合数据
return DataTableToList(ds.Tables[0]);
}