日期:2014-05-20  浏览次数:20788 次

这样求数量对吗(三层结构数据访问层)?
/////////////////存储过程代码:
ALTER PROCEDURE [dbo].[usp_SelectQuestionCountBySubjectID]
@SubjectId int
AS
SELECT count(*)
FROM [dbo].[Question]
WHERE [SubjectId] = @SubjectId

/////////////////数据访问层代码:
  //根据科目编号获取该科目的题目数量
  public int GetQuestionCountBySubjectID(int subjectId)
  {
  int count = 0;
  using (SqlConnection conn = new SqlConnection(connString))
  {
  SqlCommand objCommand = new SqlCommand(dbOwner + ".usp_SelectQuestionCountBySubjectID", conn);
  objCommand.CommandType = CommandType.StoredProcedure;
  objCommand.Parameters.Add("@SubjectId", SqlDbType.Int).Value = subjectId;
  conn.Open();
  count = Convert.ToInt32(objCommand .ExecuteScalar());
  conn.Close();
  conn.Dispose();
  }
  return count;
  }

------解决方案--------------------
既然用using (SqlConnection conn = new SqlConnection(connString))强制释放资源
为什么下面还:
conn.Close();
conn.Dispose();
纠结 不会用就不要用
------解决方案--------------------
C#中using关键字的3中用法
一、导入命名空间

using System;





二、强制释放资源

SqlConnection conn = new SqlConnection(ConnStr);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
conn.Close();
conn.Dispose();


以上代码的等同写法:




using (SqlConnection conn = new SqlConnection(ConnStr))
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}





三、定义别名(命名空间别名、类别名)


using System;
using System.Data.SqlClient;


using colAlias = System.Collections;
namespace System
{
using cout = System.Console;
class TestClass
{
static void Main()
{
colAlias::Hashtable test = new colAlias::Hashtable();
cout.WriteLine("hello");
}
}
 


 知道了吧??
三种用法给你列出来了 自己看下吧
------解决方案--------------------
求科目成绩总和有什么意义?
一场考试语文大家考了13243分?

一般算每个人的总分吧。group by userid下。